मैंने सोचा कि यह के बीच तुलना करने के लिए बहुत अच्छा होगा _JAVA_OPTIONS
और JAVA_TOOL_OPTIONS
। मैं एक के लिए थोड़ा खोज रहा हूं, लेकिन मुझे कुछ भी नहीं मिल रहा है, इसलिए मुझे उम्मीद है कि हम यहां स्टैकओवरफ्लो पर ज्ञान पा सकते हैं।
JAVA_OPTS
पूर्णता के लिए शामिल है। यह जेवीएम का हिस्सा नहीं है, लेकिन जंगली में इसके बारे में बहुत सारे सवाल हैं।
क्या मुझे पता है:
अब तक मुझे पता चला है कि:
JAVA_OPTS
JDK द्वारा उपयोग नहीं किया जाता है, लेकिन अन्य ऐप्स के एक समूह द्वारा ( इस पोस्ट को देखें )।JAVA_TOOL_OPTIONS
और_JAVA_OPTIONS
कमांड लाइन मापदंडों के बजाय पर्यावरण चर के रूप में जेवीएम तर्कों को निर्दिष्ट करने के तरीके हैं।- कम से कम
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
अंतर पर बहुत प्रकाश डाला नहीं है:
चूंकि कमांड-लाइन को हमेशा एक्सेस या संशोधित नहीं किया जा सकता है, उदाहरण के लिए एम्बेडेड VMs में या बस VMs स्क्रिप्ट के भीतर गहराई से लॉन्च किया जाता है, इसलिए एक 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