0

実行時に .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 で十分でしょうか?

前もって感謝します。

4

2 に答える 2