我无法在 Windows 上访问我的 Jar 中的文件。当我在 Unix 上运行它时,我没有这个问题。我在 Windows 和 Unix 上都创建了 jar,它没有任何区别。无论哪种方式,它都不能在 Windows 上运行。
我在我的 jar 上运行了 jar -tf 命令,我运行的类位于:a/b/c/d/ClassOne.class。我要查找的类位于 jar 的基本目录中:ClassTwo.class
我在这个 ClassOne 中的代码如下所示:
String path = File.separator + "myYAML.yml";
InputStream in = MetricCollector.class.getResourceAsStream(path);
InputStreamReader isr = new InputStreamReader(in);
BufferedReader input = new BufferedReader(isr);
我的代码在最后一行显示抛出 NullPointerException 中断,我只能相信这意味着它找不到我给它的路径。但是,当我运行 jar 时,这个确切的代码在我的调试器和 Unix 上运行良好。
我还测试了以下路径:
"myYAML.yml"
File.seperator + ".." + File.seperator + ".." + File.seperator + ".." + File.seperator + ".." + "myYAML.yml"
".." + File.seperator + ".." + File.seperator + ".." + File.seperator + ".." + "myYAML.yml"
一切都无济于事。
我已经尽可能地使用了以下 Stack Overflow 帖子,但它们似乎对我没有答案: 如何正确引用资源文件以进行 JAR 和调试?,访问 JAR 文件中的资源和从 JAR 中读取文件在 Windows 上不起作用
我将非常感谢任何额外的帮助。提前致谢。