[英]How to extract file from wrapped Jar in Java
文件(exe)位于JAR文件内部,该文件已使用Launch4j包装到EXE。
我的可执行文件(包裹在EXE中的JAR文件):
myProgram.exe
可执行位置
myProgram.exe/program.jar/resources/sub-program.exe
如何运行(或提取到temp目录)sub-program.exe并使用参数运行它? sub-program.exe -f -q
如果子程序是临时文件,则可以将其运行为:
String exeLocation = System.getProperty("java.io.tmpdir") + "sub-program.exe";
String params = " -f -q";
ProcessBuilder process = new ProcessBuilder("cmd.exe", "/c", exeLocation + params);
如何从包装的Jar文件中提取文件? 我猜没有办法在包装好的Jar文件中运行它。
您可以通过getClass().getResourceAsStream("/resources/sub-program.exe")
类的方法在类路径中获取InputStream
作为资源。 您可以从流中读取并在您喜欢的任何位置(例如,根据提示在temp目录下)创建文件,然后执行该文件。
您是否要以编程方式从jar中运行它? 如果没有,您可以预先使用winzip手动将其解压缩(一个jar基本上只是一个zip文件)。
我应该指出,尽管您尝试做的事情确实很奇怪。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.