我正在尝试使用these instructions将项目导出到IntelliJ中的jar文件,但失败了。
我在我的应用程序中获得NullPointerException
这一行:
ClassLoader.getSystemClassLoader().getResource(".").getPath();
请注意,这个项目在Eclipse中导出很好。
我已经尝试将清单中的Class-Path
更改为.
,因为我已经注意到Eclipse导出的jar中的这种更改。
然后,我的应用程序会更进一步,但在尝试加载我的jar中包含的任何资源文件时会失败。这是如何:
假设我的罐子放在
中/Users/me/screwed.jar
当我的应用程序尝试在jar文件的根目录中打开resource.file
时,它会在此处搜索它:
/Users/me/resource.file
这会触发NullPointerException
。
如何解决此问题,团队?
答案 0 :(得分:0)
使用此行加载路径:
this.getClass().getClassLoader().getResource(".").getPath();
这应该是jar文件的根目录,并允许您在其中打开资源。
对于静态上下文,请使用
MyStaticClassName.class.getClassLoader().getResource(".").getPath();
其中MyStaticClassName是一些staic实用程序类。