JAR 清单 Class-路径,使用文件夹而不是 jar
JAR manifest Class-Path, use folder instead of jar
我的目录结构如下
--conf
| |
| --foo.properties
|
--lib
|
--application.jar
在我的 application.jar 的 MANIFEST.mf
文件中,我有以下条目:Class-Path: ../conf/
在 class 里面的 jar(由 jar 的主要方法调用)我尝试加载 foo.properties 文件作为 class使用以下代码的路径资源
URL properties = this.getClass().getClassLoader().getResource("foo.properties");
但是,无法从 class 路径找到资源。为什么 Class-Path 属性在 jar 清单中不起作用?我是否误解了它如何影响应用程序 classloader classpath?
我是运行具有以下命令的应用程序
java -jar application.jar
应该可以。不确定您的 MANIFEST.mf
格式是否正确。我用 Maven 生成了我的并且它有效。这就是我的 MANIFEST.mf
的样子,
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: john.doe
Class-Path: ../conf/
Created-By: Apache Maven 3.3.9
Build-Jdk: 1.8.0_92
Main-Class: com.basaki.misc.clazzpath.FindResource
您可以找到完整的示例 here。
我的目录结构如下
--conf
| |
| --foo.properties
|
--lib
|
--application.jar
在我的 application.jar 的 MANIFEST.mf
文件中,我有以下条目:Class-Path: ../conf/
在 class 里面的 jar(由 jar 的主要方法调用)我尝试加载 foo.properties 文件作为 class使用以下代码的路径资源
URL properties = this.getClass().getClassLoader().getResource("foo.properties");
但是,无法从 class 路径找到资源。为什么 Class-Path 属性在 jar 清单中不起作用?我是否误解了它如何影响应用程序 classloader classpath?
我是运行具有以下命令的应用程序
java -jar application.jar
应该可以。不确定您的 MANIFEST.mf
格式是否正确。我用 Maven 生成了我的并且它有效。这就是我的 MANIFEST.mf
的样子,
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: john.doe
Class-Path: ../conf/
Created-By: Apache Maven 3.3.9
Build-Jdk: 1.8.0_92
Main-Class: com.basaki.misc.clazzpath.FindResource
您可以找到完整的示例 here。