【发布时间】:2013-08-27 17:14:57
【问题描述】:
我正在尝试编写一个 Java 程序,它可以在 Linux 下运行一个可执行文件。此可执行文件接收两个参数并使用两个给定参数执行 nmap -sP 操作。
我将此文件称为file.exe,其内容如下:
nmap -sP $segment1-$segment1
我已经做了一个 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": error=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, java.lang.UNIXProcess.forkAndExec(Native) 中没有这样的文件或目录 方法)在 java.lang.UNIXProcess.(UNIXProcess.java:135) 在 java.lang.ProcessImpl.start(ProcessImpl.java:130) 在 java.lang.ProcessBuilder.start(ProcessBuilder.java:1022) ... 4 更多
我错过了什么?
【问题讨论】:
-
您是否尝试过指定file.exe的绝对路径?