実行時に .exe または .linux ファイルを実行できる Java クラス内に関数を作成しようとしています。プログラムは espresso.exe (Windows OS の場合) および espresso.linux (Linux ベースのシステムの場合) です。
通常、プログラムを実行する方法は、コマンドラインに移動し、実行可能ファイルが保存されているフォルダーに移動して次のように入力することです。
(コマンドプロンプトで)
エスプレッソ A0.txt > m.txt
または espresso A0.txt (cmd で出力を返します)
(Linux ターミナルで)
./espresso.linux A0.txt > m.txt
または ./espresso.linux A0.txt (ターミナル ウィンドウに出力が返されます)
ここで、A0.txt は入力引数で、m.txt は espresso が作成するファイルです。
A0.txt と espresso.linux と espresso.exe をフォルダー src/resources の下に保存しました
私は次のことを試しました:
ProcessBuilder pb = new ProcessBuilder("./src/resources/espresso.exe","src/resources/A0.txt",">src/resources/m.txt");
try {
Process p = pb.start();
}catch (IOException ex) {
Logger.getLogger(NetSynth.class.getName()).log(Level.SEVERE, null, ex);
}
私も試しました:
Runtime rt = Runtime.getRuntime();
Process p = rt.exec("src/resources/espresso.linux src/resources/A0.txt > src/resources/m.txt");
int waitFor = p.waitFor();
どちらも実行するファイルの特定に失敗し、コマンドを実行しません。2つのアプローチには多くのエラーがある可能性があることを理解しています。実行可能ファイルを実行するために作成するアプローチとコードを理解するために、いくつかの助けを借りることができます。
また、espresso.linux を実行するために言及すべきパスはありますか? /src/resources/espresso.linux で十分でしょうか?
前もって感謝します。