0

Java で実行可能なプログラム (.exe) を実行する必要があります。このプログラムには、GUI とコマンド ラインの 2 つの異なる操作モードがあります。コマンド ラインからプログラムを起動する構文は次のとおりです。 C:\Users\Ermanno\Desktop\ "programFolder"\"program.exe" /stext output.txt

このようにして、プログラムは出力をファイル「output.txt」に保存します。

私はそれを疲れました:

Process p = new ProcessBuilder("C:\\Users\\Ermanno\\Desktop\\programFolder\\program.exe" ,"/stext a.txt").start();

出力ファイルを作成しません。

コマンドを含むファイルバッチを使用してJavaに実行するのにも疲れましたが、結果は同じです。

4

3 に答える 3

2

各引数を 1 つの文字列で渡す必要があります。

... program.exe", "/stext", "a.txt")...

また、子プロセスの出力を読み取るバックグラウンド スレッドを必ず開始してください。問題がある場合、子プロセスはエラー メッセージを標準出力に出力します。ユーザーがそれを積極的に読み取らない場合、この出力は失われます。

このために、ストリームp.getInputStream()と をループしますp.getErrorStream()

「私もファイルバッチを使うのにうんざりしている」と言うので、後者は特に重要です。Java は、バッチ スクリプトと何ら変わりはありません。バッチからコマンドを実行できない場合、Java からも機能しません。

于 2013-11-06T10:19:59.797 に答える
0

ファイルバスを使用して解決しました。このファイルには、コマンドが含まれています。

String [] _s = {"cmd.exe", "/c", "start", "file.bat"}; Process pr = Runtime.getRuntime().exec(_s);

于 2013-11-07T08:13:45.450 に答える