Java的版本打印在下面:
$ java -version
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.5) (6b24-1.11.5-0ubuntu1~12.04.1)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
当像这样传递一个属性时:
java -Dmy.property=value -jar my.jar
..它无法在代码中解决:
System.getProperty("my.property") // => null
但是使用下划线代替点可以正常工作:
// CLI
java -Dmy_property=value -jar my.jar
// In the code:
System.getProperty("my_property") // => "value"
这不是非标准行为吗?
如果相关,JAR 是通过 Maven 构建的,maven-assembly-plugin
并且用于将依赖项捆绑到 JAR 中。