Java 为jar指定类路径
我正在尝试配置JAR的类路径,以便我的ResourceBundle可以从中获取属性文件 如果我从.class文件运行它并指定Java 为jar指定类路径,java,jar,classpath,Java,Jar,Classpath,我正在尝试配置JAR的类路径,以便我的ResourceBundle可以从中获取属性文件 如果我从.class文件运行它并指定-cp标志,它工作正常,System.err.println(System.getProperty(“java.class.path”)将打印-cp标志中指定的路径 如果我尝试为它创建一个jar文件,System.err.println(System.getProperty(“java.class.path”)始终打印jar文件的路径,并且不会拾取属性文件 如果您将其作为j
-cp
标志,它工作正常,System.err.println(System.getProperty(“java.class.path”)
将打印-cp
标志中指定的路径
如果我尝试为它创建一个jar文件,System.err.println(System.getProperty(“java.class.path”)代码>始终打印jar文件的路径,并且不会拾取属性文件
如果您将其作为jar文件运行,那么似乎无法指定-cp
标志(这正是我所希望的,因为切换正在使用的属性文件很常见)。我尝试在jar清单中指定它,但它仍然不起作用
下面是一个测试jar中似乎不起作用的代码和清单:
public final class Test {
public static void main(final String[] args) {
System.err.println(System.getProperty("java.class.path"));
}
}
编辑
原来的路线毫无意义,所以我改了。我想指向ResourceBundle可以在其中找到属性文件的目录。如果使用-jar,-cp将被忽略:
-jar
执行封装在JAR文件中的程序。第一个论点是
JAR文件的名称,而不是
启动类名。为了这个
选项的清单
JAR文件必须包含一行
表单主类:classname。在这里
classname标识具有
publicstaticvoidmain(字符串[])
args)
用作
应用程序的起点。见
Jar工具参考页和Jar
Java教程的踪迹
有关使用Jar的信息
文件和Jar文件清单当您
使用此选项,JAR文件是
所有用户类的源,以及其他
忽略用户类路径设置。
来源:我将在Java应用程序中读取一个属性(该属性可以指示应该从何处加载资源)
如何执行应用程序的示例如下:
java-Dkey=value-jar application.jar
不能在清单中使用类路径通配符
有关类路径如何工作的更多信息,请参阅:
不支持类路径通配符
在类路径jar清单头中
是的,对于shell,~意味着$HOME,但对于java来说,它并不意味着什么。问题是我还有一个索引文件。如果你有一个索引文件,那么类路径将被忽略。我相信我在问题中提到过。写“似乎”和引用引用引用之间有区别:-)你想用“~/*”匹配什么?很好。在那里考试的时候有点傻。如果我给出一个目录或文件的路径,它也不起作用。
Manifest-Version: 1.0
Created-By: 1.6.0_20 (Sun Microsystems Inc.)
Main-Class: Test
Class-Path: /home/ajanuary/Projects/test/