Dies steht im Zusammenhang mit einer früheren Frage eines anderen Benutzers und fragt So erkennen Sie, dass der Code in der Eclipse-IDE ausgeführt wird .
Ich habe festgestellt, dass Eclipse immer Programme mit javaw
und nicht mit java
startet. (Dies bedeutet nicht, dass ein mit javaw
gestartetes Programm von Eclipse gestartet wurde.)
Ich kann die übergebenen Argumente mit
finden %Vor% Aber das sagt mir nicht, ob es mit java
oder javaw
gestartet wurde.
java
oder javaw
? javaw
zum Starten von Programmen? System.console () gibt null
zurück, da der einzige Unterschied zwischen der Verwendung von java
und javaw
darin besteht, dass für javaw
kein Konsolenfenster zugeordnet ist.
Hier ist ein kleines Testprogramm, mit dem Sie Folgendes demonstrieren können:
%Vor% Wenn Sie jedoch in Eclipse starten, gibt System.console()
immer null
zurück, auch wenn Sie mit java
gestartet haben.
Wenn Sie in der Eclipse-Startkonfiguration auf der Registerkarte JRE die Laufzeit-JRE in Alternative JRE ändern, können Sie die ausführbare Java-Datei von javaw
in java
ändern.
Suche nach System.console () hat nicht funktioniert für mich, wegen:
Also verwende ich folgende Lösung:
%Vor%Funktioniert gut mit JDKs 5, 6 und 7.
Gibt es eine Möglichkeit herauszufinden, ob es mit Java oder Java gestartet wurde?
Laut der Dokumentation : Der Befehl javaw ist identisch mit Java, außer dass mit Javaw kein Konsolenfenster verbunden ist. Verwenden Sie Java, wenn kein Eingabeaufforderungsfenster angezeigt werden soll. Der Java-Launcher wird jedoch ein Dialogfeld mit Fehlerinformationen anzeigen, wenn ein Start aus irgendeinem Grund fehlschlägt.
Warum verwendet Eclipse JavaW zum Starten von Programmen?
Um von javaw zu java zu wechseln:
Ich denke, weil Eclipse-Entwickler GUI-Anwendungen entwickeln und kein Konsolenfenster benötigen.