Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
rude Runtime.exec调用java-cp在linux中不起作用_Java_Cross Platform_Runtime.exec - Fatal编程技术网

rude Runtime.exec调用java-cp在linux中不起作用

rude Runtime.exec调用java-cp在linux中不起作用,java,cross-platform,runtime.exec,Java,Cross Platform,Runtime.exec,我正在使用java进程来生成许多其他java进程,使用Runtime.exec(cmd),其中cmd如下所示: java-cp“MyJar.jar”pkg.MyClass还有一些参数 从命令行运行相同的命令在windows和linux中运行良好,但是当我的衍生java进程通过Runtime.exec调用该命令时,它在windows中工作,但在linux中不工作。 在linux中,我在线程“main”java.lang.NoClassDefFoundError:pkg/MyClass中得到异常 有

我正在使用java进程来生成许多其他java进程,使用
Runtime.exec(cmd)
,其中cmd如下所示:

java-cp“MyJar.jar”pkg.MyClass还有一些参数

从命令行运行相同的命令在windows和linux中运行良好,但是当我的衍生java进程通过
Runtime.exec调用该命令时,它在windows中工作,但在linux中不工作。

在linux中,我在线程“main”java.lang.NoClassDefFoundError:pkg/MyClass中得到
异常

有什么想法吗?

这段代码:

Process p = Runtime.getRuntime().exec("echo \"hello\"");
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
System.out.println(br.readLine());
在linux中提供此输出:

"hello"
带引号(“)

所以我的建议是从exec行中删除引号(“)。在执行命令时,它们不会被删除,而是作为参数传递给外部程序。它实际上相当于在提示符中编写
java-cp\“MyJar.jar\”..

如果您需要“-标记(MyJar.jar可能有空格或其他内容),我建议您查看
Runtime.exec(String命令,String[]envp)
。这甚至会使它更加独立于平台。

这段代码:

Process p = Runtime.getRuntime().exec("echo \"hello\"");
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
System.out.println(br.readLine());
在linux中提供此输出:

"hello"
带引号(“)

因此,我的建议是从exec行中删除引号(“)。在执行命令时,它们不会被删除,而是作为参数传递给外部程序。这实际上相当于在提示符中写入
java-cp\“MyJar.jar\”..


如果您需要“-标记(MyJar.jar可能有空格或其他内容),我建议您查看
Runtime.exec(String命令,String[]envp)
。这甚至会使它更加独立于平台。

使用Runtime.exec(字符串[]),而不是Runtime.exec(字符串)

使用Runtime.exec(字符串[]),而不是Runtime.exec(字符串)

是否检查了路径和类路径变量?您的意思是什么?命令应该通过-cps设置类路径还有哪些参数?您检查了路径和类路径变量了吗?您的意思是什么?该命令应该通过-cps设置类路径还有哪些参数?很好,如果这是问题,我不会感到惊讶!谢谢,这似乎让我更进一步,因为它正在查找类,但是我面临另一个问题,请参阅编辑以获取更多信息。^好的捕获,如果这是问题,我不会感到惊讶!谢谢,这似乎让我更进一步,因为它找到了类,但我面临着另一个问题,请参阅编辑了解更多信息^