好的netbeans Java 7u17项目。我正在尝试执行以下方式具有依赖项的外部jar文件:

ProcessBuilder pb = new ProcessBuilder(new String[]{"java", "-jar", String.format("%s %s", path, cmde)});
pb.redirectErrorStream(true);
Process proc = pb.start();


当我执行此应用程序时,出现以下错误消息:

Error: Unable to access jarfile C:/Users/XXXX/Documents/SampleApplication/ProcessTest/proc.jar -k


jar文件在其旁边的名为lib的文件夹中具有其依赖关系(其他jar文件)。当我打开PowerShell或命令提示符并手动输入时

java -jar C:/Users/XXXX/Documents/SampleApplication/ProcessTest/proc.jar -k


该应用程序可以完美执行。为什么不从我的Java应用程序呢?我从堆栈溢出尝试了许多类似问题的答案,但是没有一个起作用。一些例子:
 -重新启动netbeans
 -已关闭并重新打开的项目
 -重建proc.jar

谢谢你的帮助
 -乔伊

最佳答案

我也无法解决,但有解决方法。
创建一个运行您的jar的bat脚本并执行该bat文件,如下所示:

ProcessBuilder pb = new ProcessBuilder("c:\\...\\runproc.bat");


编辑:

您需要将命令参数一一拆分,例如:

ProcessBuilder("java", "-jar", path, arg1, arg2, ...)

关于java - 尝试将外部jar执行为Process时无法访问jar文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16594251/

10-11 22:03
查看更多