java - 如果先指定 -jar,为什么 -Dproperty=value 不起作用?

标签 java command-line system-properties

给定以下类(class):

public class SpecifySystemPropertiesCommandLine {

    public static void main(String[] args) {
        String prop1 = System.getProperty("prop1", "defaultvalue");
        String prop2 = System.getProperty("prop2", "defaultvalue");

        System.out.println("prop1 = " + prop1);
        System.out.println("prop2 = " + prop2);
    }

}

为什么以下不起作用:

$ java -jar sysprop.jar -Dprop1="i can haz?"
prop1 = defaultvalue
prop2 = defaultvalue

但这有效:

$ java -Dprop1="i can haz?" -jar sysprop.jar 
prop1 = i can haz?
prop2 = defaultvalue

最佳答案

参见http://docs.oracle.com/javase/6/docs/technotes/tools/windows/java.html .

jar 文件名后面的所有内容都是传递给类/应用程序的 main 方法的参数。

-Dprop=val 是传递给 java 进程的参数。

关于java - 如果先指定 -jar,为什么 -Dproperty=value 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14544095/

相关文章:

bash - 从 HDFS 获取前两个文件

linux - 如何区分 $1 作为 shell 变量和 $1 作为 awk 变量?

java - 清除/取消设置系统属性 maven.compiler.release 以便它不再存在

java - 使用锦标赛树查找数组中的第 K 个最大元素

Java,在对象列表中搜索?

java - 如何从 Java 中的不同类访问数组列表?

MySQL命令行不做任何事情

java - 如何从命令行将数组 arg 传递给 Groovy JAR?

java - 在 user.home 的另一个目录中创建一个目录?

java - 动态可编辑复选框