正如您敏锐地观察到的,_JAVA_OPTIONS、JAVA_TOOL_OPTIONS 和 JAVA_OPTS 都是指定 JVM 参数的机制。让我们深入研究一下它们的异同。
_JAVA_OPTIONS 缺乏官方文档,而 JAVA_TOOL_OPTIONS 被简单提及作为在命令行访问受限的场景中提供 VM 参数的一种方式。
这些变量的优先级如下:
_JAVA_OPTIONS 和 JAVA_TOOL_OPTIONS 都允许您通过环境变量传递 JVM 参数。然而,_JAVA_OPTIONS 胜过命令行参数,而命令行参数又胜过 JAVA_TOOL_OPTIONS。
已知 _JAVA_OPTIONS 和 JAVA_TOOL_OPTIONS 都会被 java 和 javac 拾取。通过库调用进行的进程内 JVM 调用也遵循这些变量。
对于 _JAVA_OPTIONS 或 JAVA_TOOL_OPTIONS 中可以包含的内容没有已知的限制。然而,在 ~/.bashrc 中设置它们被认为是滥用其预期目的。
_JAVA_OPTIONS 不是 JDK 的一部分,但其他应用程序可能会利用它。 JAVA_TOOL_OPTIONS 和 JAVA_OPTS 是 JVM 的一部分。需要注意的是,在非 Oracle HotSpot JVM 中可能无法保证对 _JAVA_OPTIONS 的支持。
虽然 _JAVA_OPTIONS 由于其优先级而看起来很有吸引力,但不建议使用它,因为它缺乏文档。 JAVA_TOOL_OPTIONS 有特定用途,仅当命令行访问不可行时才应使用。 JAVA_OPTS 虽然与 JVM 没有直接关系,但它是脚本和批处理文件中 JVM 参数的常见占位符。
以上是_JAVA_OPTIONS、JAVA_TOOL_OPTIONS 和 JAVA_OPTS:有什么区别以及何时应该使用它们?的详细内容。更多信息请关注PHP中文网其他相关文章!