我有一个 java 应用程序,一旦它被导出到一个可执行的 jar,它就需要知道它的位置。所以,我的代码中有以下函数:
private void setLocalJarPaths() throws URISyntaxException{
CodeSource codeSource = ShopRecipient.class.getProtectionDomain().getCodeSource();
File jarFile = new File(codeSource.getLocation().toURI().getPath());
localJarPath = ShopRecipient.class.getProtectionDomain().getCodeSource().getLocation().getPath(); //getgetgetgetgetgetgetget
localParentPath = jarFile.getParentFile().getPath();
}
这在我从 Eclipse 运行时有效,但是一旦我将其导出到可运行的 jar 文件,它就会引发以下错误:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at java.io.File.<init>(Unknown Source)
at bsReportSender.ShopRecipient.setLocalJarPaths(ShopRecipient.java:71)
at bsReportSender.ShopRecipient.<init>(ShopRecipient.java:23)
at
我尝试将类更改为同一个包中的不同类,但它仍然会引发相同的错误。有任何想法吗?