2017-10-20 180 views
0

文件夹中,我有以下目录结构JAR清单类路径,而不是使用的jar

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

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

在罐子里面的类(由广口瓶的主要方法称为)我尝试加载foo.properties文件作为类路径资源使用以下代码

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

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

我用下面的命令

java -jar application.jar

回答

1

它应该运行的应用程序。不知道,您的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