Ich finde einen Mechanismus heraus, um eine Exe aus Java aufzurufen und bestimmte Parameter zu übergeben. Wie kann ich?
Process process = new ProcessBuilder("C:\\PathToExe\\MyExe.exe").start();
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;
System.out.printf("Output of running %s is:", Arrays.toString(args));
while ((line = br.readLine()) != null) {
System.out.println(line);
}
Der vorherige Code funktioniert. Aber ich kann keine Parameter übergeben . MyExe.exe akzeptiert Parameter. Ein weiteres Problem besteht darin, dass PathToExe Leerzeichen enthält. ProcessBuilder scheint nicht zu funktionieren. Beispielsweise:
C:\\User\\My applications\\MyExe.exe
Danke dir.
new ProcessBuilder("C:\\PathToExe\\MyExe.exe","param1","param2").start();
Ist dieses Snippet für Optionsargumente wertvoll? Zum Beispiel -h das steht für Hilfe und so weiter ..
-h
als Option interpretiert werden, ein anderes als Dateiname. ProcessBuilder
weder weiß noch kümmert. Re-Pfade mit Leerzeichen: Dies ist einer der Gründe, warum Argumente als diskrete Zeichenfolgen und nicht als durch Leerzeichen getrennte Liste wie in der Befehlszeile und in einigen schlechten APIs angegeben werden. Wenn Sie Leerzeichen mit Verzicht hineinwerfen, wird der gesamte Programmpfad an das Betriebssystem übergeben, um ihn entsprechend zu behandeln.