enf*_*fix 3 java jar executable-jar
我需要从 jar 可执行文件中的 java 应用程序读取外部 XML 文件。
如果我从控制台 (java -jar package.jar) 吃午饭它工作正常,但如果我通过双击 (Java Platform SE 二进制文件) 吃午饭它不起作用。
我有相对路径的这个问题。使用绝对路径,它可以双向工作。
您需要将 XML 磁贴的(JAR 相对)路径添加到文件中的Class-Path条目中MANIFEST.MF。此条目包含有关 JAR 的运行时类路径的信息。假设您希望将 XML 与 JAR 文件本身放在同一个文件夹中,以下就足够了:
Class-Path: .
Run Code Online (Sandbox Code Playgroud)
(不要忘记在MANIFEST.MF文件末尾放一个空行)
然后,您可以使用Class#getResource()或 将其作为类路径资源获取ClassLoader#getResource()。在你的情况下,第一个就足够了。
URL xmlResource = getClass().getResource("/filename.xml");
File xmlFile = new File(xmlResource.getPath());
// ...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7709 次 |
| 最近记录: |