设置多个系统属性 Java 命令行
2022-08-31 13:11:58
有没有更简单的方法可以在命令行上为Java程序指定多个系统属性,而不是拥有多个-D语句?
试图避免这种情况:
java -jar -DNAME="myName" -DVERSION="1.0" -DLOCATION="home" program.jar
我以为我见过一个示例,其中有人在那之后使用一个和一些引号字符串,但我再也找不到这个例子了。-D
有没有更简单的方法可以在命令行上为Java程序指定多个系统属性,而不是拥有多个-D语句?
试图避免这种情况:
java -jar -DNAME="myName" -DVERSION="1.0" -DLOCATION="home" program.jar
我以为我见过一个示例,其中有人在那之后使用一个和一些引号字符串,但我再也找不到这个例子了。-D
答案是否定的。您可能已经看到一个示例,其中有人会设置如下内容:
-DArguments=a=1,b=2,c=3,d=4,e=cow
然后,应用程序将分析属性字符串的值以获取单个值。在你的中,你可以得到键值作为(假设输入格式是有保证的):Arguments
main
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]);
}
}
此外,在 java 命令行中,应该在主类或文件之前。例:-D
jar
java -DArguments=a=1,b=2,c=3,d=4,e=cow MainClass
文档中没有任何内容提到类似的事情。
这里有一句话:
-Dproperty=value 设置系统属性值。如果 value 是包含空格的字符串,则必须将字符串括在双引号中:
java -Dfoo=“some string” SomeClass