不确定是否有best
(它可能是一个候选者,worst
因为它是一个相当黑客),但这似乎是一个有能力的机制。getResource
它通过直接读取 jar来回避使用的需要。
public class NavelGazing {
public static void main(String[] args) throws Throwable {
// Do a little navel gazing.
java.net.URL codeBase = NavelGazing.class.getProtectionDomain().getCodeSource().getLocation();
// Must be a jar.
if (codeBase.getPath().endsWith(".jar")) {
// Open it.
java.util.jar.JarInputStream jin = new java.util.jar.JarInputStream(codeBase.openStream());
// Walk the entries.
ZipEntry entry;
while ((entry = jin.getNextEntry()) != null ) {
System.out.println("Entry: "+entry.getName());
}
}
}
}
我添加了一个名为的文件Sjælland.txt
,这确实成功获取了条目。