Linux で実行する実行可能ファイルを取得する Java プログラムを作成しようとしています。この実行可能ファイルは 2 つのパラメーターを受け取り、指定された 2 つのパラメーターを使用してnmap -sP操作を実行します。
このファイルをfile.exeと呼び、その内容は次のとおりです。
nmap -sP $segment1-$segment1
私はすでに a を実行しましたがchmod +x file.exe
、それは が存在する同じディレクトリにあり.class
ます。
Java コードは次のとおりです。
import java.lang.Runtime;
import java.lang.Process;
import java.io.IOException;
import java.lang.InterruptedException;
public class runFile {
public static void main (String args[]) throws IOException, InterruptedException {
Runtime r = Runtime.getRuntime();
Process p = r.exec("file.exe "+args[0]+" "+args[1]);
p.waitFor();
}
}
コンパイル後、(file.exeがある場所から)実行しようとするたびに
java runFile
次の例外とエラー ログが表示されます。
スレッド「メイン」の例外 java.io.IOException: プログラム「file.exe」を実行できません: エラー = 2、java.lang.ProcessBuilder.start(ProcessBuilder.java:1041) の java.lang にそのようなファイルまたはディレクトリはありません。 Runtime.exec(Runtime.java:617) で java.lang.Runtime.exec(Runtime.java:450) で java.lang.Runtime.exec(Runtime.java:347) で runFile.main(runFile.java:12) ) 原因: java.io.IOException: error=2, No such file or directory at java.lang.UNIXProcess.forkAndExec(Native Method) at java.lang.UNIXProcess.(UNIXProcess.java:135) at java.lang. ProcessImpl.start(ProcessImpl.java:130) at java.lang.ProcessBuilder.start(ProcessBuilder.java:1022) ... 4 詳細
私は何が欠けていますか?