Ne arasındaki fark var java
, javaw
ve javaws
?
Windows altında buldum çoğu Java kullanmaya başladı javaw
.
Ne arasındaki fark var java
, javaw
ve javaws
?
Windows altında buldum çoğu Java kullanmaya başladı javaw
.
Yanıtlar:
Aşağıdakiler için belgelere bakın:
java
komut 1 / javaw
komut 2
java
Aracı bir Java uygulaması başlattı. Bunu bir Java çalışma zamanı ortamı başlatarak, belirtilen bir sınıfı yükleyerek ve o sınıfınmain
yöntemini çağırarak yapar .javaw
Komut ile aynıdırjava
bununla dışındajavaw
hiçbir orada ilişkilidir konsol penceresi. Kullanımjavaw
sen yok bir komut istemi penceresi görünmesini istiyorum.
javaws
komutu , " Java Web Start komutu"
javaws
Komut başlattı Protokolü (JNLP) Kızak Java Ağının referans uygulamasıdır Java Web Start,. Java Web Start, bir ağda barındırılan Java uygulamalarını / uygulamalarını başlatır.
Bir JNLP dosyası belirtilirse, JNLP dosyasında belirtilenjavaws
Java uygulamasını / uygulamasını başlatır. Başlatıcısı, bu sürümde desteklenen bir dizi seçenek vardır. Ancak, seçenekler gelecekteki bir sürümde kaldırılabilir.javaws
Ayrıca bkz. JDK 9 Sürüm Notları Kullanımdan Kaldırılmış API'ler, Özellikler ve Seçenekler :
Java Dağıtım Teknolojileri kaldırıldığını ve bir sürümde kaldırılacak
dahil Applet API, Java plug-in, Java Uygulaması Görüntüleyici, JNLP ve Java Web Start dahil Java Uygulaması WebStart işlevselliği,javaws
aracı tüm edilmektedir, JDK kullanımdan kaldırılmış 9 ve gelecekteki bir sürümde kaldırılacak.
java: Çıktı / hataları görüntülemek için bir konsolla ilişkilendirilmiş Java uygulama yürütücüsü
javaw: ( Java pencereli ) uygulama yürütücüsü konsolla ilişkilendirilmedi. Böylece çıkış / hata gösterimi yok. Çıktı / hataları sessizce metin dosyalarına iletmek için kullanılabilir. Çoğunlukla GUI tabanlı uygulamaları başlatmak için kullanılır.
javaws: ( Java web start ) dağıtık web uygulamalarını indirmek ve çalıştırmak için. Yine, hiçbir konsol ilişkilendirilmez.
Hepsi JRE'nin bir parçasıdır ve aynı JVM'yi kullanır.
javaw
olmalı? (Değil)
java.exe konsolla ilişkilendirilir, oysa javaw.exe böyle bir ilişkilendirmeye sahip değildir. Bu nedenle, java.exe çalıştırıldığında, çıktı ve hata akışlarının gösterildiği bir komut istemi penceresi otomatik olarak açılır.
Javaw komutu, javaw'ın ilişkili konsol penceresi olmaması dışında java ile aynıdır. Komut istemi penceresinin görüntülenmesini istemiyorsanız javaw komutunu kullanın. Java başlatıcısı, başarısız olursa hata bilgilerini içeren bir pencere görüntüler.
Ve javaws Java web başlangıç uygulamaları, applet, ya da bunun gibi bir şey için, ben şüpheliyim.
Çıkış yeniden yönlendirmesinin aşağıdakilerle çalıştığını kontrol ettim javaw
:
javaw -cp ... mypath.MyClass ... arguments 1>log.txt 2>err.txt
Java uygulaması System.out veya System.err aracılığıyla bir şey yazdırırsa, bu dosyalara java (olmadan w
) da yazılır . Özellikle başlatma java
sırasında, JRE hata çıkış borusuna başlatma hataları (sınıf bulunamadı) yazabilir. Bu bakımdan, hataları bilmek şarttır. İstenirse, her durumda konsol yeniden yönlendirmesini kullanmanızı öneririm javaw
.
Tersine kullanırsanız
start java .... 1>log.txt 2>err.txt
Windows konsol ile start
komuta, konsol çıkış yönlendirme yok değil çalışmak java
ne ile javaw
.
Neden böyle olduğunu açıklayın: Ben javaw
işletim sistemi (java.lang.Process sınıfını kullanarak yeterli) bir iç işlem açar ve bilinen bir çıkış yeniden yönlendirme bu sürece aktarır düşünüyorum. Komut satırında yeniden yönlendirme verilmezse, hiçbir şey yönlendirilmez ve dahili başlatma işleminde javaw
konsol çıkışı yoktur. Java.lang.Process davranışı benzerdir. Sanal makine bu dahili özelliği javaw
de kullanabilir.
'Start' kullanırsanız, Windows konsolu Windows'un başlatma işleminden sonra komutu yürütmesi için yeni bir işlem oluşturur, ancak bu mekanizma maalesef başlatılan alt işlem için belirli bir yeniden yönlendirme kullanmaz.
java -cp ...
. Neredeyse hiç kimse bunu istemediği gibi,javaw
bu sinir bozucu pencerenin kaybolması için bir seçim.