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 にバンドルするために使用されています。