繁体   English   中英

JAR清单类路径,使用文件夹而不是jar

[英]JAR manifest Class-Path, use folder instead of jar

我有以下目录结构

--conf
|   |
|   --foo.properties
|
--lib
   |
   --application.jar

在我的application.jar的MANIFEST.mf文件中,我具有以下条目: Class-Path: ../conf/

在jar内的类(由jar的主要方法调用)中,我尝试使用以下代码将foo.properties文件加载为类路径资源

URL properties = this.getClass().getClassLoader().getResource("foo.properties");

但是,无法从类路径中找到资源。 为什么jar清单中的Class-Path属性不起作用? 我是否误解了它如何影响应用程序类加载器的类路径?

我正在使用以下命令运行应用程序

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

您可以在此处找到完整的示例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM