gpt4 book ai didi

command-line - OpenJDK 64 位 Java 1.6 : Doesn't support dot in CLI system properties?

转载 作者:行者123 更新时间:2023-12-01 04:53:22 27 4
gpt4 key购买 nike

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-assemble-plugin 用于将依赖项捆绑到 JAR 中。

最佳答案

当您像这样设置属性名称时,Java 支持属性名称中的点。

一些可能的解释:

  • 实际执行的命令与此不同。也许您的启动脚本中有错误或其他问题。 (尝试使用“set -x”让 shell 告诉您实际的命令选项是什么。)

  • 应用程序的某些其他部分会在调用您正在查看的 getProperty 之前取消设置该特定属性。

关于command-line - OpenJDK 64 位 Java 1.6 : Doesn't support dot in CLI system properties?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14583586/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com