深入研究 _JAVA_OPTIONS、JAVA_TOOL_OPTIONS 和 JAVA_OPTS 之间的差异
在 Java 编程领域,设置环境变量来配置 JVM 参数是一种常见的做法。在这些选项中,_JAVA_OPTIONS、JAVA_TOOL_OPTIONS 和 JAVA_OPTS 最为突出。让我们深入了解一下它们的区别。
背景:
-
JAVA_OPTS:主要由第三方应用程序使用,此选项不属于的JVM.
-
JAVA_TOOL_OPTIONS 和 _JAVA_OPTIONS: 两者都允许通过环境变量而不是命令行参数指定 JVM 参数。它们被 Java 和 JavaC 等实用程序识别。
-
优先级: _JAVA_OPTIONS 具有最高优先级,其次是命令行参数,然后是 JAVA_TOOL_OPTIONS。
钥匙差异:
-
文档: 虽然 JAVA_TOOL_OPTIONS 有一些文档,但 _JAVA_OPTIONS 没有。这表明 _JAVA_OPTIONS 可能不是官方推荐的。
-
可用性: 即使使用 JVM 库,_JAVA_OPTIONS 和 JAVA_TOOL_OPTIONS 也会被选择。
-
限制: JVM 参数类型的确切限制这些变量中包含的内容可能会根据具体的 JVM 实现而有所不同。
实现详细信息:
如果您对实现细节感到好奇,请考虑检查Oracle HotSpot VM 的源代码(例如 OpenJDK7)。值得注意的是,这些未记录的变量可能不受所有虚拟机或未来版本的支持。
最佳实践:
- 谨慎使用 _JAVA_OPTIONS,因为它不太好- 已记录并可能会被弃用
- 为了清晰和一致性,命令行参数的优先级要高于环境变量。
附加说明:
- 优先级_JAVA_选项>命令行>设置 JVM 参数时,请务必记住 JAVA_TOOL_OPTIONS。
- 设置这些环境变量在无法访问命令行参数的情况下非常有用,例如在脚本中启动 VM 时。
以上是_JAVA_OPTIONS、JAVA_TOOL_OPTIONS 和 JAVA_OPTS 之间有什么区别?的详细内容。更多信息请关注PHP中文网其他相关文章!