Ken*_*Ken 2 java jar execute processbuilder
我有一个我构建的应用程序,它使用通过ProcessBuilder调用的非Java可执行文件:
ProcessBuilder pb = new ProcessBuilder(invocation);
pb.redirectErrorStream(true);
Process proc = pb.start();
InputStream is = proc.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
但是,我想将该应用程序整齐地捆绑到jar文件本身,而不是要求将它放在同一目录之外.有没有办法运行这个应用程序而不提取它?
如果我需要删除ProcessBuilder,那就没关系,只要它能正常工作.:)
你基本上要求操作系统在ZIP文件中运行一个应用程序.如果不首先提取它,我不知道有任何方法可以做到这一点.即使它是Java应用程序,您也需要调用java可执行文件,因为它知道如何解析JAR文件并访问其中的类和资源.
我能想到的唯一相当简单的解决方法是将JAR的内容提取到临时文件夹并从那里运行程序.这可以使用java.util.zip中的类以编程方式完成.