Bunun arasında bir karşılaştırma olması harika olacağını düşündüm _JAVA_OPTIONS
ve JAVA_TOOL_OPTIONS
. Birini biraz arıyordum, ama hiçbir şey bulamıyorum, umarım burada Stackoverflow'da bilgi bulabiliriz.
JAVA_OPTS
tamlık için dahil edilmiştir. JVM'nin bir parçası değil, ancak vahşi doğada bu konuda birçok soru var.
Bildiklerim:
Şimdiye kadar öğrendim:
JAVA_OPTS
JDK tarafından kullanılan, ancak diğer uygulamalar bir grup tarafından (bkz değil bu yayını ).JAVA_TOOL_OPTIONS
ve_JAVA_OPTIONS
JVM bağımsız değişkenlerini komut satırı parametreleri yerine ortam değişkeni olarak belirtmenin yollarıdır.- En azından tarafından alınır
java
vejavac
- Bu önceliğe sahipler:
_JAVA_OPTIONS
(diğerlerinin üzerine yazar)- Komut satırı parametreleri
JAVA_TOOL_OPTIONS
(diğerleri tarafından üzerine yazılır)
- En azından tarafından alınır
Bilmek istediklerim
- Karşılaştırma yapan resmi belgeler var mı
JAVA_TOOL_OPTIONS
ve_JAVA_OPTIONS
JAVA_TOOL_OPTIONS
Ve_JAVA_OPTIONS
(öncelik hariç) arasında başka farklar var mı ?- Yürütülebilir pick up hangi
JAVA_TOOL_OPTIONS
ve_JAVA_OPTIONS
(ek olarakjava
vejavac
) - Nelerin dahil edilebileceği konusunda herhangi bir sınırlama
JAVA_TOOL_OPTIONS
ve_JAVA_OPTIONS
Resmi Belgeler
İle ilgili herhangi bir belge bulamadım _JAVA_OPTIONS
. İçin olan belgelerJAVA_TOOL_OPTIONS
bu farka fazla ışık tutmaz:
Komut satırına her zaman erişilemeyeceği veya değiştirilemeyeceği için, örneğin gömülü VM'lerde veya yalnızca komut dosyalarının derinliklerinde başlatılan VM'lerde, bu durumlarda aracıların başlatılması için bir JAVA_TOOL_OPTIONS değişkeni sağlanır.
...
Örnek komut dosyası
Bunu anlamak için kullandığım kod bu. Konsol çıktısı yorumlar olarak eklenir:
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
tercih yerine, bkz stackoverflow.com/q/52986487/537554