好的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/