ความแตกต่างระหว่างคุณสมบัติของระบบSystem.getProperties ()และตัวแปรสภาพแวดล้อมSystem.getenv ()ใน JVM คืออะไร
ความแตกต่างระหว่างคุณสมบัติของระบบSystem.getProperties ()และตัวแปรสภาพแวดล้อมSystem.getenv ()ใน JVM คืออะไร
คำตอบ:
ฉันคิดว่าความแตกต่างระหว่างทั้งสองเดือดลงเพื่อเข้าถึง ตัวแปรสภาพแวดล้อมของระบบสามารถเข้าถึงได้โดยกระบวนการใด ๆ และคุณสมบัติของระบบ Java สามารถเข้าถึงได้โดยกระบวนการที่พวกเขาจะเพิ่ม
นอกจากนี้ยังเป็นโบฮีเมียนกล่าวว่าตัวแปร env ตั้งอยู่ในระบบปฏิบัติการ ( แต่พวกเขา '' สามารถตั้งค่าผ่าน Java) setProperty()และคุณสมบัติของระบบจะถูกส่งผ่านตัวเลือกบรรทัดคำสั่งหรือชุดผ่านทาง
คุณสมบัติของระบบถูกตั้งค่าบนบรรทัดคำสั่ง Java โดยใช้-Dpropertyname=valueไวยากรณ์ พวกเขายังสามารถเพิ่มที่รันไทม์โดยใช้System.setProperty(String key, String value)หรือผ่านSystem.getProperties().load()วิธีการต่างๆ
ที่จะได้รับเฉพาะคุณสมบัติระบบคุณสามารถใช้หรือSystem.getProperty(String key)System.getProperty(String key, String def)
ตัวแปรสภาพแวดล้อมได้รับการตั้งค่าในระบบปฏิบัติการเช่นใน Linuxexport HOME=/Users/myusernameหรือบน WindowsSET WINDIR=C:\Windowsฯลฯ และอาจไม่ได้รับการตั้งค่าที่รันไทม์ 
ที่จะได้รับเฉพาะตัวแปรสภาพแวดล้อมของSystem.getenv(String name)คุณสามารถใช้
System.grtProperties()แสดงรายการคุณสมบัติทั้งหมดและชุดที่ตั้งจากบรรทัดคำสั่งจะอยู่ที่นั่น แต่ไม่มีวิธีแยกความแตกต่างจากคุณสมบัติอื่น ๆ ที่เพิ่มโดยระบบหากนั่นคือสิ่งที่คุณต้องการ
                    JAVA_TOOL_OPTIONSโปรดทราบว่าคุณยังสามารถตั้งค่าคุณสมบัติของระบบที่มีตัวแปรสภาพแวดล้อม
                    System.getenv(String name)ไม่ได้อ่านค่าแบบไดนามิกจากระบบในเวลาที่โทร