如何在JAR之外加载文件,但相对于JAR?

Jon*_*nah 5 java jar file

我需要在JAR之外加载一个文件,但相对于它(lib/config/config.ini确切地说).我使用了那个确切的路径,只要工作目录是JAR的位置,它就能正常工作,即

/path/to/jar$ java -jar JAR.jar
Run Code Online (Sandbox Code Playgroud)

如果它像这样运行:

~$ java -jar /path/to/jar/JAR.jar
Run Code Online (Sandbox Code Playgroud)

它找不到它.如何正确加载相对于JAR位置的文件?

Chr*_*ash 3

尝试使用getClassLoader().getResource("classname")来查找 jar 文件中类的 URL。您会发现它!在 jar 路径和 jar 内路径之间用 分隔,您可以轻松对其进行切片。