Was ist der Unterschied zwischen java
, javaw
und javaws
?
Ich fand unter Windows, dass der größte Teil von Java verwendet wird javaw
.
java
java-web-start
javaw
user705414
quelle
quelle
java -cp ...
. Da fast niemand das will,javaw
ist die Wahl, dieses nervige Fenster verschwinden zu lassen.Antworten:
Siehe Dokumentation für:
java
Befehl 1 /javaw
Befehl 2javaws
Befehl , der " Java Web Start Befehl"Siehe auch JDK 9-Versionshinweise Veraltete APIs, Funktionen und Optionen :
quelle
Java: Java Application Executor, der einer Konsole zugeordnet ist, um Ausgaben / Fehler anzuzeigen
javaw: ( Java-Fenster ) Anwendungs-Executor, der nicht mit der Konsole verknüpft ist. Also keine Anzeige von Ausgabe / Fehlern. Es kann verwendet werden, um die Ausgabe / Fehler stillschweigend in Textdateien zu übertragen. Es wird hauptsächlich zum Starten von GUI-basierten Anwendungen verwendet.
javaws: ( Java- Webstart ) zum Herunterladen und Ausführen der verteilten Webanwendungen. Auch hier ist keine Konsole zugeordnet.
Alle sind Teil von JRE und verwenden dieselbe JVM.
quelle
javaw
sollte in meinem Pfad sein? (Ist es nicht)java.exe ist der Konsole zugeordnet, während javaw.exe keine solche Zuordnung hat. Wenn java.exe ausgeführt wird, wird automatisch ein Eingabeaufforderungsfenster geöffnet, in dem Ausgabe- und Fehlerströme angezeigt werden.
quelle
Von http://publib.boulder.ibm.com/infocenter/javasdk/v6r0/index.jsp?topic=%2Fcom.ibm.java.doc.user.aix32.60%2Fuser%2Fjava.html :
Und javaws ist für Java-Webstartanwendungen, Applets oder ähnliches, würde ich vermuten.
quelle
Ich habe überprüft, ob die Ausgabeumleitung funktioniert mit
javaw
:Wenn die Java-Anwendung etwas über System.out oder System.err druckt, wird dies in diese Dateien geschrieben, ebenso wie bei Verwendung von Java (ohne
w
). Insbesondere beim Startenjava
kann die JRE Startfehler (Klasse nicht gefunden) in die Fehlerausgabepipe schreiben. In diesem Zusammenhang ist es wichtig, über Fehler Bescheid zu wissen. Ich empfehle auf jeden Fall die Konsolenumleitung, wenn siejavaw
aufgerufen wird.Im Gegenteil, wenn Sie verwenden
Mit dem Windows-Konsolenbefehl
start
funktioniert die Konsolenausgabeumleitung weder mitjava
noch mitjavaw
.Erklärung, warum es so ist: Ich denke, das
javaw
öffnet einen internen Prozess im Betriebssystem (angemessen unter Verwendung der Klasse java.lang.Process) und überträgt eine bekannte Ausgabeverleitung an diesen Prozess. Wenn in der Befehlszeile keine Umleitung angegeben wird, wird nichts umgeleitet, und der intern gestartete Prozess fürjavaw
hat keine Konsolenausgaben. Das Verhalten für java.lang.Process ist ähnlich. Die virtuelle Maschine kann diese interne Funktion auch für verwendenjavaw
.Wenn Sie 'start' verwenden, erstellt die Windows-Konsole einen neuen Prozess für Windows, um den Befehl nach dem Start auszuführen. Dieser Mechanismus verwendet jedoch leider keine bestimmte Umleitung für den gestarteten Unterprozess.
quelle