繁体   English   中英

如何从Java中的包装Jar中提取文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM