Rob*_*obV 19 java jvm system-properties
如果我在调用JVM时多次指定系统属性,当我检索属性时,我将实际得到哪个值?例如
java -Dprop=A -Dprop=B -jar my.jar
Run Code Online (Sandbox Code Playgroud)
我打电话的结果是什么System.getProperty("prop");?
关于这个的Java文档并没有真正告诉我这方面有用的东西.
在我对运行不同JVM的几台机器进行的非科学测试中,似乎最后一个值是返回的值(这实际上是我需要的行为)但是我想知道这种行为是否在任何地方正式定义,或者它是否可以在JVM之间变化?
Edw*_*uck 15
没有什么比写一个小班看看它是如何工作的了.
public class PropTest {
public static void main(String[] args) {
System.out.println(System.getProperty("prop"));
}
}
Run Code Online (Sandbox Code Playgroud)
在使用命令行编译和运行时
java -Dprop=A -Dprop=B -Dprop=C PropTest
Run Code Online (Sandbox Code Playgroud)
输出结果
C
Run Code Online (Sandbox Code Playgroud)
这意味着值从左到右放入表中,最后一个值覆盖以前的值.
只是为了记录环境,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)
Run Code Online (Sandbox Code Playgroud)
java.util.System类由Properties类支持,该类只是Hashtable的扩展.假设在作为参数传递给JVM时按顺序读取值,则分配的最后一个值可能是该值.
| 归档时间: |
|
| 查看次数: |
8922 次 |
| 最近记录: |