我的代码在 JAR 文件中运行,我需要获取该文件的完整路径。例如,我的 JAR 名为 example.jar,位于 D:\example\ 所以我需要通过该 jar 中的一些代码获取“D:\example\example.jar”。我已经尝试了很多方法来获得该路径,但没有一个能正常工作。
其中之一是
getClass().getProtectionDomain().getCodeSource().getLocation().toURI().getPath()
许多人说这对他们有用,但它为我返回“rsrc:./”。
之后我进行了搜索,发现我的 MANIFEST.MF 包含以下内容:
Manifest-Version: 1.0
Rsrc-Class-Path: ./
Class-Path: .
Rsrc-Main-Class: Example
Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader
我不知道那是什么意思,但是如果我删除那个 Rsrc 的东西并用它替换其他的东西,它说罐子坏了。我认为这就是它不起作用的原因。有人知道这是什么意思吗?
PS:我正在使用 BAT 文件运行我的 JAR。