指定jar的类路径

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可以在其中找到属性文件的目录.

Sea*_*oyd 5

如果使用-jar,则忽略-cp:

-jar
执行封装在JAR文件中的程序.第一个参数是JAR文件的名称而不是启动类名称.为了使此选项起作用,JAR文件的清单必须包含Main-Class:classname形式的一行.这里,classname标识具有public static void main(String[] args)作为应用程序起点的方法的类.有关使用Jar文件和Jar文件清单的信息,请参阅Jar工具参考页面和Java Tutorial的Jar跟踪.使用此选项时,JAR文件是所有用户类的源,并忽略其他用户类路径设置.

来源: java - Java应用程序启动器

  • 写"看起来"和引用参考之间有区别:-) (6认同)