ฉันคิดว่ามันจะดีที่จะมีการเปรียบเทียบระหว่างและ_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ไม่หลั่งน้ำตาแสงมากเกี่ยวกับความแตกต่าง:
เนื่องจากบรรทัดคำสั่งไม่สามารถเข้าถึงหรือแก้ไขได้เสมอตัวอย่างเช่นใน 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