Kann ich herausfinden, ob das Java-Programm mit java oder javaw gestartet wurde?

8

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.

  1. Gibt es eine Möglichkeit, herauszufinden, ob es mit java oder javaw ?
  2. gestartet wurde?
  3. Warum verwendet Eclipse javaw zum Starten von Programmen?
saugata 18.03.2010, 10:34
quelle

3 Antworten

6

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.

    
Stephen Denne 18.03.2010, 10:46
quelle
4

Suche nach System.console () hat nicht funktioniert für mich, wegen:

  1. Es erfordert JDK 6 oder höher
  2. Das Konsolenobjekt fehlt auch, wenn die Anwendung über Runtime.exec (String) Methode. Das war für mich kritisch, weil wir eine Menge automatisiertes Skript verwendeten.

Also verwende ich folgende Lösung:

%Vor%

Funktioniert gut mit JDKs 5, 6 und 7.

    
Viktor 10.12.2012 15:41
quelle
1
  

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?

  1. Um von javaw zu java zu wechseln:

    1. Öffnen Sie Ihre Startkonfiguration, indem Sie "Ausführen" -> "Ausführen ..." aus dem Menü wählen Bar.
    2. Wählen Sie die Startkonfiguration Ihrer Anwendung.
    3. Wechseln Sie zur Seite 'JRE'.
    4. Deaktivieren Sie "Standard-Java-Programmdatei verwenden"
    5. Tippen Sie 'java' anstelle von 'javaw' ein.
  2. Ich denke, weil Eclipse-Entwickler GUI-Anwendungen entwickeln und kein Konsolenfenster benötigen.

uthark 18.03.2010 11:24
quelle

Tags und Links