我正在尝试读取位于/src/main/resources/file.txt 的 maven 项目中的文件。
我在用
URL url=this.getClass().getResource("/");
String filePath=url.getPath()+"file.txt";
当通过 eclipse 运行时,url 对象获得正确的值。
但是,当我打包 jar 并在命令行中运行它时:
jar -cp myjar.jar SampleTest
它为“url”对象返回 null 并在下一行抛出 NullPointerException。
我已经使用文件浏览器打开并检查了我的 Jar 文件。它在 Jar 内的“/”位置有“file.txt”。
我哪里错了?
最佳答案
jar 文件中(通常)没有目录。因此它将返回 null
。
如果你想获取文件,你可以直接获取该资源:
URL fileUrl = getClass().getResource("/file.txt");
...
或者简单地说:
InputStream fileInputStream = getClass().getResourceAsStream("/file.txt");
关于java - getClass().getResource ("/") 在命令行中返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11116020/