java 启动读取依赖的jar_java-在jar依赖项中读取资源文件

在我解释我的问题之前-我已经尝试在已经提出的问题中找到解决方案,但是没有一个起作用;)

我正在尝试读取jar中的文件,而jar是另一个项目的依赖项.该文件位于路径下

/src/main/resources/driver

项目打包到jar文件中.使用pom将资源中的DRIVER包含在jar中:

src/main/resources

*

另外,解压缩jar时,可以看到它已添加到jar的根目录中.

我需要做的是将此文件从jar的内部复制到磁盘上的目录中.只要通过IntelliJ将项目添加为从属项目,一切都可以正常工作.当我将其添加为POM中的依赖项时,我得到了NullPointerException.

我用来加载此文件的代码如下所示:

String sourceFilePath = this.getClass().getClassLoader().getResource(driverFileName).getPath();

我还尝试了不同的方法:

String sourceFilePath = this.getClass().getResource("driver").getPath();

String sourceFilePath = this.getClass().getResource("/driver").getPath();

String sourceFilePath = this.getClass().getClassLoader().getResource("driver").getPath();

String sourceFilePath = this.getClass().getClassLoader().getResource("/driver").getPath();

但是每次尝试都以相同的结果结束:调用getPath()时出现NullPointerException.

我需要解决方案,因为作为依赖项附加的项目是UI测试的框架.到目前为止,我一直在将驱动程序添加到每个需要它们的新项目中,但是这需要时间,这对于想要使用此框架的人来说更加复杂,并且在发布新版本的驱动程序时会遇到很多麻烦.我希望能够简单地为此框架添加一个Maven依赖关系,并能够在此框架内部使用驱动程序.

这里的问题是我需要设置一个具有该驱动程序路径的系统变量.因此,一旦需要驱动程序,我就尝试将其(代码在框架内)复制到外部位置(某个tmp目录).

知道如何解决吗?

解决方法:

像这样使用目标jar类加载器

ClassInOtherJar.class.getClassLoader().getResourceAsStream("filename.xml")

标签:java,maven,jar,dependencies,resources

来源: https://codeday.me/bug/20191012/1897751.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值