Java: Wie führe ich einen Prozess aus, der nicht an eine Windows-Konsole angeschlossen ist?

8

Sowohl Runtime.exec () als auch ProcessBuilder scheinen eine Konsole an den gestarteten Prozess anzuhängen. Unter Windows 7 kann man eine conhost.exe im Task-Manager sehen. Mein Problem ist jetzt, dass der C-Prozess, den ich versuche zu starten, folgenden Test durchführt, um zu bestimmen, ob es ein Konsolenfenster hat, auf das es Aufforderungen ausgeben kann:

%Vor%

Ist es mit Java möglich, den C-Prozess so zu starten, dass der obere Test fehlschlägt, um die Eingabeaufforderung zu vermeiden?

    
mstrap 23.09.2011, 19:52
quelle

3 Antworten

1

Mindestens auf OpenJDK 6, CreateProcess wird mit CREATE_NO_WINDOW aufgerufen. Ich könnte mir vorstellen, dass der Code des Sun JDK ziemlich ähnlich ist. Das lässt mich fragen, ob etwas anderes diese Konsole verursacht. Haben Sie versucht, Ihr Programm mit javaw.exe anstelle von java.exe auszuführen?

Wenn Sie über den Tellerrand schauen, ist JGit vielleicht ein besserer Weg, um Ihr spezielles Problem zu lösen.

    
rockwalrus 29.09.2011 18:05
quelle
0

Versuchen Sie Folgendes:

%Vor%

Das /B -Flag weist start an, keine neue Konsole zu erstellen, obwohl ich nicht weiß, ob start selbst beim Aufruf aus Java eine Konsole zuweist oder nicht.

    
CurtisB 25.09.2011 21:13
quelle
0

Die Verwendung von Runtime ist schwierig, weil Sie die Ausgabe und Eingabe mit Streams verbrauchen müssen. Sehen Sie diesen Artikel:

Ссылка

Versuchen Sie stattdessen, die Exec-Bibliothek von Apache-Commons zu verwenden. Hier ist etwas, was Sie zum Einstieg bringt:

Ссылка

    
sethu 27.09.2011 03:44
quelle

Tags und Links