我有一个JAR(resource.jar)文件作为资源包含在另一个正在运行的JAR文件(app.jar)中,我想以编程方式将resource.jar文件复制到app.jar以及计算机上的其他位置(例如,桌面)。
但是,由于某种原因,我无法执行此操作-每当我尝试执行任何操作来访问resource.jar时(例如打开流),都会出现错误,好像文件不在那里一样。但是,如果我使用完全相同的代码来复制不同类型的文件(例如.txt文件),那么一切都会顺利进行。
例如,拿app.jar,它包含三个文件:Main.class,resource.jar,和test.txt
例如,这可能是app.jar的代码
public class Main{
public static void main(String[] args){
File destination; // something outside of the JAR file
URL resourceURL = Main.class.getResource("/resource.jar");
InputStream resourceStream = Main.class.getResourceAsStream("/resource.jar");
// resourceURL and testStream are null
URL testURL = Main.class.getResource("/test.txt");
InputStream testStream = Main.class.getResourceAsStream("/test.txt");
// testURL and testStream are NOT null
}
}
我认为也许只是删除甚至更改resource.jar的扩展名都可以解决此问题,但没有效果。
如何从一个正在运行的JAR文件中复制一个JAR文件?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。