读取Jar文件中的Class文件或其它资源

在看《从零开始写JavaWeg框架》时候,看到从Jar文件中读取类文件的一段,自己试了一下怎么也读不出来。又上网看了一些文章,说是能读出来,还可能从Java自带的的jce.jar中读取class文件,但就是没有试出来。

后来发现原因在于:没有把要读取的Jar当做Library加到工程中

具体过程如下:

1,做一个Maven工程,创建一个叫“config.txt”文件在src/main/resouces/config文件夹下(src/main/resouces/config/config.txt)。

2,再创建一个Jar包,里面有一个叫“config.txt”的文件,在config文件夹里面(config/config.txt)。
(创建Jar包的命令:“jar cvf config.jar -C . .”。假设你有一个文件夹叫“temp”,把上面说的config文件在这个temp文件里面,使用CMD进入这个temp文件夹后,使用这个命名就可以打包了)
把要新建的Jar通过IDE工具的Library添加功能(Idea的话,进入“Project Structure”,再选择“Libraries”,再点“+”号,选择Java。再选择你的Jar所在的文件夹或者Jar文件,然后选择做为“Jar Directory”加进来就可以了)
或者通过Maven添加进来,如:
        <dependency>
            <groupId>com.mycompany.myproduct</groupId>
            <artifactId>abc</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>H:/IdeaProjects/Test/src/main/lib/config.jar</systemPath>
        </dependency>
(之前试验的时候,只是把Jar包放到Classpath下,没有把它当做Library引进来,所以一直读不出来)


3,加进来后,使用ClassLoader.getResources("config/config.txt")来读取“config/config.txt”资源的话,就可以读出多个“config.txt”资源,如:
    file:/D:/IdeaProjects/test/src/main/lib/config.jar!/config/config.txt
   file:/D:/IdeaProjects/test/src/main/resources/config/config.txt
(注意:在打印ClassLoader.getResources读出来的Jar文件里面的文件URL的时候,有时候显示"jar:"有时候显示"file:",没有具体测试,但应该和文件类型有关系,在家里读txt文件时显示"file",在公司读class文件时显示"jar")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值