我需要在JAR之外加载一个文件,但相对于它(确切地说是lib/config/config.ini
)。我使用了那个确切的路径,只要工作目录是JAR所在的地方就可以正常工作,即
/path/to/jar$ java -jar JAR.jar
如果它像这样运行:
~$ java -jar /path/to/jar/JAR.jar
找不到它。如何正确加载相对于JAR位置的文件?
答案 0 :(得分:3)
尝试使用getClassLoader().getResource("classname")
在jar文件中查找类的URL。你会发现它在jar的路径和jar中的路径之间用!
分隔,你可以很容易地切片。