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

Java 如果先指定-jar,为什么-Dproperty=value不起作用?,java,command-line,system-properties,Java,Command Line,System Properties,鉴于以下类别: public class SpecifySystemPropertiesCommandLine { public static void main(String[] args) { String prop1 = System.getProperty("prop1", "defaultvalue"); String prop2 = System.getProperty("prop2", "defaultvalue"); S

鉴于以下类别:

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

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

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

请参阅

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


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

说真的,您可以自己查找这个参数。。。比问这个问题所花的时间还短。现在是stackoverflow,是的,你是对的。不客气,世界。说真的,你可以自己查一下这个。。。比问这个问题所花的时间还短。现在是stackoverflow,是的,你是对的。不客气,世界。