S
scooterJava
Gast
Ich habe eine Batchdatei, die nach anderen Anweisungen zum Schluss den Befehl "pause" enthält, der zwingend erforderlich ist. Gedacht ist, dass diese Datei in einem Kommandofenster ausgeführt wird, damit der Benutzer die Ausgaben sehen und anschließend das Fenster schließen kann. An dieser Vorgehensweise kann nichts geändert werden.
Mein Problem ist, dass ich trotz verschiedener Versuche kein Kommandofenster (Java 5, Vista) angezeigt bekomme; die Batch hängt, weil sie auf den Tastendruck bei der pause-Anweisung wartet. In Java verwende ich folgenden Code:
Wie man sieht, fange ich auch die Ausgabeströme ab (Zusatz nach Hilfe von Ebenius ).
Wie erhalte ich das benötigte Kommandofenster?
Mein Problem ist, dass ich trotz verschiedener Versuche kein Kommandofenster (Java 5, Vista) angezeigt bekomme; die Batch hängt, weil sie auf den Tastendruck bei der pause-Anweisung wartet. In Java verwende ich folgenden Code:
Code:
Runtime runtime = Runtime.getRuntime();
Process process = null;
String ext = FileUtilities.getExtension( cmd );
if( true == ext.equalsIgnoreCase( "bat" ) | true == ext.equalsIgnoreCase( "btm" )
| true == ext.equalsIgnoreCase( "cmd" ) )
{
process = Runtime.getRuntime().exec( "cmd /c " + cmd, null, new File( cmdPath ) );
}
else
{
// ...
}
final Reader stdout = new InputStreamReader( process.getInputStream() );
final Reader stderr = new InputStreamReader( process.getErrorStream() );
new Thread( new OutputPipe( stdout, System.out ) ).start();
new Thread( new OutputPipe( stderr, System.err ) ).start();
exitvalue = process.waitFor();
Wie erhalte ich das benötigte Kommandofenster?