我不久前开发了一个小程序,我将其制作成可执行的jar文件。 它使用了我放在一个名为“cache”的独立文件夹中的一些图像,该文件夹始终与.jar位于同一目录中。
consoleBG = ImageIO.read(new File("./cache/consoleBG.png").toURI().toURL());
当时它已经从Netbeans和jar文件中解决了。
现在我必须回到这个项目,突然jar不再使用相对路径了:
java.io.FileNotFoundException: C:\Users\Dromlius\.\cache\consoleBG.png
我尝试了所有内容并我在网上找到的解决方案:
MyClass.class.getResource( “高速缓存/ consoleBG.png”)。toUri()
会导致NullPointerException!
我只需要快速而简单的方法来获取.jar文件的相对路径,因为该软件将用于许多不同的系统。
提前谢谢你,
Dromlius
编辑:好的,当我从控制台调用jar时:
C:\Users\Dromlius>java -jar X:\Dromlius\Projects\MyProgram.jar
这是行不通的!
但是,如果我首先导航到文件夹X:\Dromlius\Projects
,它就会工作
我不知道为什么,但这足以达到我的目的。
我打算暂时搁置这个问题,因为有人可能会遇到类似的问题并且无法使用此解决方法。