开发者社区> 问答> 正文

以编程方式从另一个运行中的JAR文件复制一个JAR文件

我有一个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文件?

展开
收起
几许相思几点泪 2019-12-22 18:38:45 856 0
0 条回答
写回答
取消 提交回答
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载