给定以下类(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/