我试图在Linux中使用ProcessBuilder从Java 1.8运行C ++可执行文件。可执行文件将两个文件名作为参数读取,以便进一步处理。 Java代码如下:
public static void main(String args[]){
String rootDir = "/home/rtuk/qw_simp/";
ProcessBuilder process = new ProcessBuilder(rootDir + "qw_simple", "Photo1.jpg","Photo2.jpg");
process.directory(new File(rootDir));
Process p = process.start();
int err=p.waitFor();
InputStream is = p.getErrorStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
}
但是,C ++可执行文件无法找到作为参数传递的文件和指定找不到文件的错误。 这可能是什么问题?我尝试显式设置两个参数的绝对路径,但这也没有用。