java_options 使用__JAVA_OPTIONS JAVA_TOOL_OPTIONS和JAVA_OPTS之间的差异

我认为在_JAVA_OPTIONS和JAVA_TOOL_OPTIONS之间进行比较会很好。

我一直在寻找一个,但我找不到任何东西,所以我希望我们可以找到这里的知识在Stackoverflow。

包括JAVA_OPTS是为了完整性。它不是JVM的一部分,但在野外有很多问题。

我知道的:

到目前为止我已经发现:

> JAVA_OPTS不是由JDK使用,而是由一堆其他应用程序(见this post)。

> JAVA_TOOL_OPTIONS和_JAVA_OPTIONS是将JVM参数指定为环境变量而不是命令行参数的方法。

>至少由java和javac拾取

>他们有这个优先级:

> _JAVA_OPTIONS(覆盖其他)

>命令行参数

> JAVA_TOOL_OPTIONS(被其他人覆盖)

我想知道什么

>是否有任何官方文档比较JAVA_TOOL_OPTIONS和_JAVA_OPTIONS

> JAVA_TOOL_OPTIONS和_JAVA_OPTIONS之间是否存在其他差异(优先级除外)。

>哪些可执行文件选择JAVA_TOOL_OPTIONS和_JAVA_OPTIONS(除了java和javac)

>对JAVA_TOOL_OPTIONS和_JAVA_OPTIONS上可以包含的任何限制

官方文件

Since the command-line cannot always be accessed or modified, for example in embedded VMs or simply VMs launched deep within scripts, a JAVA_TOOL_OPTIONS variable is provided so that agents may be launched in these cases.

示例脚本

这是我用来解决这个问题的代码。控制台输出包括在注释中:

export JAVA_OPTS=foobar

export JAVA_TOOL_OPTIONS=

export _JAVA_OPTIONS="-Xmx512m -Xms64m"

java -version

# Picked up JAVA_TOOL_OPTIONS:

# Picked up _JAVA_OPTIONS: -Xmx512m -Xms64m

# java version "1.7.0_40"

OpenJDK Runtime Environment (IcedTea 2.4.1) (suse-3.41.1-x86_64)

OpenJDK 64-Bit Server VM (build 24.0-b50, mixed mode)

javac -version

# Picked up JAVA_TOOL_OPTIONS:

# Picked up _JAVA_OPTIONS: -Xmx512m -Xms64m

# javac 1.7.0_40

export JAVA_TOOL_OPTIONS="-Xmx1 -Xms1"

export _JAVA_OPTIONS="-Xmx512m -Xms64m"

javac -version

# Picked up JAVA_TOOL_OPTIONS: -Xmx1 -Xms1

# Picked up _JAVA_OPTIONS: -Xmx512m -Xms64m

# javac 1.7.0_40

export JAVA_TOOL_OPTIONS="-Xmx512m -Xms64m"

export _JAVA_OPTIONS="-Xmx1 -Xms1"

javac -version

# Picked up JAVA_TOOL_OPTIONS: -Xmx512m -Xms64m

# Picked up _JAVA_OPTIONS: -Xmx1 -Xms1

# Error occurred during initialization of VM

# Too small initial heap

export JAVA_TOOL_OPTIONS="-Xmx1 -Xms1"

export _JAVA_OPTIONS=

java -Xmx512m -Xms64m -version

# Picked up JAVA_TOOL_OPTIONS: -Xmx1 -Xms1

# Picked up _JAVA_OPTIONS:

# java version "1.7.0_40"

# OpenJDK Runtime Environment (IcedTea 2.4.1) (suse-3.41.1-x86_64)

# OpenJDK 64-Bit Server VM (build 24.0-b50, mixed mode)

export JAVA_TOOL_OPTIONS=

export _JAVA_OPTIONS="-Xmx1 -Xms1"

java -Xmx512m -Xms64m -version

# Picked up JAVA_TOOL_OPTIONS:

# Picked up _JAVA_OPTIONS: -Xmx1 -Xms1

# Error occurred during initialization of VM

# Too small initial heap


版权声明:本文为weixin_35698952原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。