jar包读取资源文件

读取项目路径下或者resources下的资源文件

这段时间在实习中,jar包读取resources下的资源文件这个问题困扰了我很久。百度查了非常多的方法,但是都会报错。后来没办法,就更换思路,打包时将jar包和资源文件分离。

1. 打包时将资源文件单独打包出来,然后和jar包在同一目录下

(1)pom.xml:使用自定义打包规则package.xml来打包

(2)package.xml(详细请去查怎么写)

<assembly>
    <id>full</id>
    <!-- 最终打包成一个用于发布的tar.gz文件 -->
    <formats>
        <format>tar.gz</format>
    </formats>
    <includeBaseDirectory>false</includeBaseDirectory>
    <fileSets>
        <!-- 把项目自己编译出来的jar文件,打包进zip文件的package/目录 -->
        <fileSet>
            <directory>${project.build.directory}</directory>
            <outputDirectory>package</outputDirectory>
            <includes>
                <include>*.jar</include>
            </includes>
            <fileMode>0500</fileMode>
        </fileSet>

        <!--把resource依赖打包进package/conf目录-->
        <fileSet>
            <directory>${project.basedir}/src/main/resources</directory>
            <outputDirectory>package/conf</outputDirectory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.yaml</include>
                <include>**/log4j2.xml</include>
                <include>**/conf/**</include>
                <include>**/json/**</include>
                <include>**/*.keystore</include>
            </includes>
            <fileMode>0600</fileMode>
            <directoryMode>0500</directoryMode>
        </fileSet>

        <fileSet>
            <directory>${basedir}/</directory>
            <outputDirectory>package</outputDirectory>
            <includes>
                <include>appconfig/config.json</include>
            </includes>
            <lineEnding>unix</lineEnding>
        </fileSet>

    </fileSets>
</assembly>

 (3)打包之后的XXX.tar.gz:

jar包和资源文件在统一目录下。

 (4)Java代码中的读取资源文件的操作:

就是直接new File就行。 

(5)解压文件后,执行 java -jar XXX.jar即可。

总结:

以上的做法其实是将jar包和一些资源文件分离了。此外,也可以打包resources下的文件到外面,这样,读取resources下的文件就有了另外一种解法!

2. 百度查的大多数读取resources下的文件

这些方法试了,发现都是在IDEA直接运行(执行tomcat的target目录文件)才可行,使用jar包读取都会出错......(这我是真的没办法了,真不会了。如果有大佬,请在评论区点一点小老弟好吧)

1. Java项目读取resources资源文件路径那点事 - 菜鸟的奋斗之路 - 博客园

2. Jar 包运行时读取 Resources 目录下文件 - java - 后端 |昔日长廊 = 昔日织 = 朝花夕拾—流年似水—朝花夕誓

再后来,大概知道了,jar包读取的话,获取流是可以的,但是获取文件不行。

SpringBoot项目,jar包获取不到resources下文件 - 掘金

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值