无法在IntelliJ中构建可执行jar

时间:2014-07-31 13:32:20

标签: java jar intellij-idea manifest executable-jar

我正在尝试使用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

如何解决此问题,团队?

1 个答案:

答案 0 :(得分:0)

使用此行加载路径:

this.getClass().getClassLoader().getResource(".").getPath();

这应该是jar文件的根目录,并允许您在其中打开资源。

对于静态上下文,请使用

MyStaticClassName.class.getClassLoader().getResource(".").getPath();

其中MyStaticClassName是一些staic实用程序类。