设置多个系统属性Java命令行

有没有更简单的方法来指定多个系统属性的命令行到Java程序,而不是有多个-D语句?

试图避免这一点:

java -jar -DNAME="myName" -DVERSION="1.0" -DLOCATION="home" program.jar 

我以为我看过一个人的例子,之后使用了一个-D和一些引用的string,但我再也找不到这个例子。

答案是否定的。 你可能已经看到一个例子,有人可能会设置这样的:

-DArguments=a=1,b=2,c=3,d=4,e=cow

然后,应用程序将parsingArguments属性string的值以获取单个值。 在你的main你可以得到的关键值为(假设input格式是保证):

 String line = System.getProperty("Arguments"); if(line != null) { String str[] = line.split(","); for(int i=1;i<str.length;i++){ String arr[] = str[i].split("="); System.out.println("Key = " + arr[0]); System.out.println("Value = " + arr[1]); } } 

另外, -D应该在java命令行的主类或jar文件之前。 例如: java -DArguments=a=1,b=2,c=3,d=4,e=cow MainClass

不要将属性作为parameter passing,您可以使用.properties来存储它们。

文档上没有提到类似的东西。

这是一个报价:

-Dproperty = value设置系统属性值。 如果value是一个包含空格的string,则必须将该string括在双引号中:

java -Dfoo =“一些string”SomeClass

如果所需的属性需要在系统中设置,那么没有选项比-D但是如果您在引导应用程序时需要这些属性,那么通过proerties文件加载属性是最佳select。 它不需要改变一个属性的构build。