ICR*_*ICR 4 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文件的路径,并且不会拾取属性文件.
看来如果你将它作为一个jar文件运行,你就无法指定-cp
标志(这是我所希望的,因为切换正在使用的属性文件是很常见的).我已经尝试在jar清单中指定它,但它仍然无法正常工作.
以下是测试jar中的代码和清单,似乎不起作用:
public final class Test {
public static void main(final String[] args) {
System.err.println(System.getProperty("java.class.path"));
}
}
Run Code Online (Sandbox Code Playgroud)
Manifest-Version: 1.0
Created-By: 1.6.0_20 (Sun Microsystems Inc.)
Main-Class: Test
Class-Path: /home/ajanuary/Projects/test/
Run Code Online (Sandbox Code Playgroud)
编辑 原始路径没有意义,所以我改变了它.我想指向ResourceBundle可以在其中找到属性文件的目录.
如果使用-jar,则忽略-cp:
-jar
执行封装在JAR文件中的程序.第一个参数是JAR文件的名称而不是启动类名称.为了使此选项起作用,JAR文件的清单必须包含Main-Class:classname形式的一行.这里,classname标识具有public static void main(String[] args)
作为应用程序起点的方法的类.有关使用Jar文件和Jar文件清单的信息,请参阅Jar工具参考页面和Java Tutorial的Jar跟踪.使用此选项时,JAR文件是所有用户类的源,并忽略其他用户类路径设置.