'Java', 'javawv ve' javaws 'arasındaki fark


184

Ne arasındaki fark var java, javawve javaws?

Windows altında buldum çoğu Java kullanmaya başladı javaw.


2
Çünkü Windows, bir programı her başlattığınızda ön planda gerçek bir Terminal (hatta "Terminal" olarak adlandırılmamalıdır ...) başlatma gibi can sıkıcı bir alışkanlığa sahiptir java -cp .... Neredeyse hiç kimse bunu istemediği gibi, javawbu sinir bozucu pencerenin kaybolması için bir seçim.
Matthieu

Yanıtlar:


212

Aşağıdakiler için belgelere bakın:

  • javakomut 1 / javawkomut 2
    1. javaAracı 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ın mainyöntemini çağırarak yapar .
    2. javawKomut ile aynıdır javabununla dışında javawhiçbir orada ilişkilidir konsol penceresi. Kullanım javawsen yok bir komut istemi penceresi görünmesini istiyorum.
  • javawskomutu , " Java Web Start komutu"

    javawsKomut 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 belirtilen javawsJava 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, javawsaracı tüm edilmektedir, JDK kullanımdan kaldırılmış 9 ve gelecekteki bir sürümde kaldırılacak.


69

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.


JRE yüklediysem PATH'ımda javawolmalı? (Değil)
endolith

@endolith, Windows'a Java yüklemesi, benim deneyimime göre, PATH değişkenine hiçbir şey eklemiyor. Yalnızca JRE yüklediyseniz, muhtemelen JRE / bin dizinini PATH'e manuel olarak eklemeniz gerekir; JRE ve JDK yüklediyseniz bunun yerine JDK / bin'i PATH'e eklersiniz.
mcduffee

9

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.


6

Gönderen http://publib.boulder.ibm.com/infocenter/javasdk/v6r0/index.jsp?topic=%2Fcom.ibm.java.doc.user.aix32.60%2Fuser%2Fjava.html :

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.


Bağlantı kesildi: "İstenen sayfa mevcut değil veya taşınmış olabilir."
Peter Mortensen

1

Çı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 javası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 startkomuta, konsol çıkış yönlendirme yok değil çalışmak javane ile javaw.

Neden böyle olduğunu açıklayın: Ben javawiş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 javawkonsol çıkışı yoktur. Java.lang.Process davranışı benzerdir. Sanal makine bu dahili özelliği javawde 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.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.