Properti sistem Java dan variabel lingkungan

Jawaban:

148

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().

Jake Dempsey
sumber
5
Akhirnya, bagaimana variabel ditambahkan dan ruang lingkup variabel.
Praveen Sripati
Perlu diingat bahwa proses lain dapat menemukan cmd yang digunakan untuk meluncurkan suatu proses, karenanya sifat sistem java juga.
Christian
359
Bohemian
sumber
42
Benar sekali, Bohemian. Variabel lingkungan adalah "hal OS", dan properti adalah "hal Java". Ketika itu terjadi, Java memilih untuk mengekspos variabel OS sebagai properti (seperti halnya Java mengekspos direktori saat ini dan "hal-hal lain" sebagai properti), tetapi sebenarnya hal-hal itu berbeda.
paulsm4
@MarekSebera apa maksudmu?
Bohemian
8
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.
Bohemian
11
Perhatikan bahwa Anda juga dapat mengatur properti sistem dengan variabel lingkungan JAVA_TOOL_OPTIONS.
flacs
6
@ KanagaveluSugumar Ya, Anda harus memulai ulang: Pengaturan variabel lingkungan dibaca dari lingkungan saat start up. yaitu System.getenv(String name)tidak secara dinamis membaca nilai dari sistem pada waktu panggilan.
Bohemian