ฉันคิดว่ามันจะดีที่จะมีการเปรียบเทียบระหว่างและ_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