Kürzlich habe ich festgestellt, dass einige Anwendungen ausgeführt werden javaw(nicht in java). Was ist der Unterschied zwischen ihnen und wie kann ich meine Swing-Anwendung ausführen javaw?
Ähnliche Frage und gute Antwort hier: stackoverflow.com/a/8194750/99717 . Beachten Sie, dass die Frage dort auch nach javaws.exe fragt, also technisch gesehen kein Duplikat ...
Hawkeye Parker
Antworten:
75
java.exe ist der Befehl, bei dem auf den Abschluss der Anwendung gewartet wird, bis der nächste Befehl ausgeführt wird. javaw.exe ist der Befehl, der nicht auf den Abschluss der Anwendung wartet. Sie können mit anderen Befehlen fortfahren.
Diese Antwort ist falsch. javaw.exe ist , bis das Programm abgeschlossen ist warten. Es kann zum Beispiel sicher als Teil eines .batSkripts verwendet werden und wartet. Wenn Sie jedoch Nicht-Konsolenprogramme manuell starten cmd.exe, cmd.exewird der nicht warten und sofort zur Eingabeaufforderung zurückkehren. Versuchen Sie es mit notepad.exevsping 8.8.8.8
Codeguard
115
java.exeist die Konsolen-App, während javaw.exedie Windows-App (konsolenlos) ist. Sie können nicht haben Consolemit javaw.exe.
Ich werde hinzufügen, dass "die Konsolen-App" hier nicht unbedingt bedeutet, dass "dies von einer Konsole ausgeführt wurde", sondern nur, dass java.exeauf die Konsole zugegriffen werden darf. Das Ausführen eines Applets in einem Browser unter Windows wird beispielsweise immer verwendet, java.exeauch wenn meine Java-Systemsteuerung so eingestellt ist, dass das Konsolenfenster ausgeblendet wird oder sogar kein Konsolenfenster gestartet wird .
Technisch korrekter: Mit javawist keine Konsole verbunden . Das Fenster wird nicht unbedingt erstellt (z. B. wenn Sie von einem vorhandenen Konsolenfenster aus oder vollständig im Hintergrund ausgeführt werden).
Antworten:
java.exe ist der Befehl, bei dem auf den Abschluss der Anwendung gewartet wird, bis der nächste Befehl ausgeführt wird. javaw.exe ist der Befehl, der nicht auf den Abschluss der Anwendung wartet. Sie können mit anderen Befehlen fortfahren.
quelle
.bat
Skripts verwendet werden und wartet. Wenn Sie jedoch Nicht-Konsolenprogramme manuell startencmd.exe
,cmd.exe
wird der nicht warten und sofort zur Eingabeaufforderung zurückkehren. Versuchen Sie es mitnotepad.exe
vsping 8.8.8.8
java.exe
ist die Konsolen-App, währendjavaw.exe
die Windows-App (konsolenlos) ist. Sie können nicht habenConsole
mitjavaw.exe
.quelle
java.exe
auf die Konsole zugegriffen werden darf. Das Ausführen eines Applets in einem Browser unter Windows wird beispielsweise immer verwendet,java.exe
auch wenn meine Java-Systemsteuerung so eingestellt ist, dass das Konsolenfenster ausgeblendet wird oder sogar kein Konsolenfenster gestartet wird .Der Unterschied besteht im Subsystem , auf das jede ausführbare Datei abzielt.
java.exe
zielt auf dieCONSOLE
Subsystem ab.javaw.exe
zielt auf dasWINDOWS
Subsystem ab.quelle
Der Befehl javaw.exe ist identisch mit java.exe, außer dass mit javaw.exe kein Konsolenfenster verknüpft ist
quelle
javaw
ist keine Konsole verbunden . Das Fenster wird nicht unbedingt erstellt (z. B. wenn Sie von einem vorhandenen Konsolenfenster aus oder vollständig im Hintergrund ausgeführt werden).