如果我在调用 JVM 时多次指定系统属性,那么当我检索该属性时,我实际会得到哪个值?例如
java -Dprop=A -Dprop=B -jar my.jar
当我打电话时会得到什么结果System.getProperty("prop");
?
The Java 文档 http://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html在这方面并没有真正告诉我任何在这方面有用的东西。
在我对运行不同 JVM 的几台机器进行的非科学测试中,最后一个值似乎是返回的值(这实际上是我需要的行为),但我想知道这种行为是否实际上在任何地方正式定义,或者它在 JVM 之间是否有所不同?
没有什么比编写一个小类来看看它是如何工作更好的了。
public class PropTest {
public static void main(String[] args) {
System.out.println(System.getProperty("prop"));
}
}
当使用命令行编译并运行时
java -Dprop=A -Dprop=B -Dprop=C PropTest
产生输出
C
这意味着这些值从左到右放入表中,最后一个值覆盖以前的值。
只是记下环境,Fedora 16,Linux 3.3.7,64位
> java -version
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.1) (fedora-65.1.11.1.fc16-x86_64)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)