私は間の比較持っているのは素晴らしいことだろうと思った_JAVA_OPTIONS
としますJAVA_TOOL_OPTIONS
。私は少し探していましたが、何も見つかりません。Stackoverflowで知識を見つけられることを願っています。
JAVA_OPTS
完全性のために含まれています。これはJVMの一部ではありませんが、実際には多くの疑問があります。
私が知っていること:
これまでのところ、次のことがわかりました。
JAVA_OPTS
JDKではなく、他の多くのアプリで使用されます(この投稿を参照)。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
公式ドキュメント
に関するドキュメントは見つかりませんでした_JAVA_OPTIONS
。のドキュメンテーションはJAVA_TOOL_OPTIONS
、違いにあまり光を当てていません:
たとえば、埋め込みVMや単にスクリプト内の深いVMでコマンドラインにアクセスしたり変更したりできるとは限らないため、JAVA_TOOL_OPTIONS変数が用意されているため、これらの場合にエージェントを起動できます。
...
スクリプトの例
これは私がこれを理解するために使用したコードです。コンソール出力はコメントとして含まれています:
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
JDK_JAVA_OPTIONS
優先代替として、参照stackoverflow.com/q/52986487/537554