Apa perbedaan antara properti sistem System.getProperties () dan variabel lingkungan System.getenv () dalam JVM?
Apa perbedaan antara properti sistem System.getProperties () dan variabel lingkungan System.getenv () dalam JVM?
Jawaban:
Saya pikir perbedaan antara keduanya bermuara pada akses. Variabel lingkungan sistem dapat diakses oleh proses apa pun dan properti sistem Java hanya dapat diakses oleh proses yang ditambahkan.
Juga seperti yang dinyatakan Bohemian, variabel env diatur dalam OS (namun mereka 'dapat' diatur melalui Java) dan properti sistem dilewatkan sebagai opsi baris perintah atau ditetapkan via setProperty()
.
Properti sistem diatur pada baris perintah Java menggunakan-Dpropertyname=value
sintaks. Mereka juga dapat ditambahkan saat runtime menggunakanSystem.setProperty(String key, String value)
atau melalui berbagai
System.getProperties().load()
metode.
Untuk mendapatkan properti sistem tertentu , Anda dapat menggunakanSystem.getProperty(String key)
atauSystem.getProperty(String key, String def)
.
Variabel lingkungan diatur di OS, misalnya di Linuxexport HOME=/Users/myusername
atau di WindowsSET WINDIR=C:\Windows
dll, dan, tidak seperti properti, mungkin tidak diatur saat runtime.
Untuk mendapatkan variabel lingkungan spesifik yangdapat Anda gunakanSystem.getenv(String name)
.
System.grtProperties()
daftar semua properti, dan yang ditetapkan dari command line akan ada di sana, tetapi tidak ada cara untuk membedakan mereka dari properti lain yang ditambahkan oleh sistem, jika itu yang Anda tanyakan.
JAVA_TOOL_OPTIONS
.
System.getenv(String name)
tidak secara dinamis membaca nilai dari sistem pada waktu panggilan.