问题描述
我正在尝试在我的maven项目中读取/src/main/resources/file.txt中的文件。
I'm trying to read a file in my maven project at /src/main/resources/file.txt.
我正在使用
URL url=this.getClass().getResource("/");
String filePath=url.getPath()+"file.txt";
当通过eclipse运行时,url对象获取正确的值。
url object gets the correct value when this is run thru eclipse.
但是,当我打包jar并在命令行中运行它时:
But, when I package the jar and run it in command line:
jar -cp myjar.jar SampleTest
它为'url'对象返回null并在下一行中抛出NullPointerException。
It returns null for 'url' object and throws a NullPointerException in the next line.
我使用文件浏览器打开了我的Jar文件并进行了检查。它在Jar内的/位置有'file.txt'。
I have openend my Jar file using file browser and checked. It has the 'file.txt' in "/" location inside the Jar.
我哪里出错?
推荐答案
jar文件中通常没有目录。因此它将返回 null
。
There are (often) no directories inside jar files. Therefor it will return null
.
如果你想获得您可以直接获得该资源的文件:
If you want to get the file you could get that resource directly:
URL fileUrl = getClass().getResource("/file.txt");
...
或者只是:
InputStream fileInputStream = getClass().getResourceAsStream("/file.txt");
这篇关于getClass()。getResource(" /")在命令行中返回null的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!