Bagaimana saya bisa mendapatkan nilai System Variable yang ada di
MyComputer -> Properties -> Advanced -> Environment Variables -> System Variables
di Jawa?
Edit
Saya telah menggunakan System.getenv()
metode.
Ini adalah nilai pencetakan jika saya berikan
System.out.println(System.getenv("JAVA_HOME"));
dan itu menunjukkan null
nilai jika saya mencoba hal yang sama untuk variabel sistem yang dibuat oleh saya
System.out.println(System.getenv("DBE"));
Jawaban:
Gunakan
System.getenv(String)
metode ini, berikan nama variabel untuk dibaca.sumber
Untuk memperjelas, variabel sistem sama dengan variabel lingkungan. Variabel lingkungan pengguna disetel per pengguna dan berbeda setiap kali ada pengguna yang berbeda. Variabel lingkungan sistem yang sama tidak peduli apa pun yang pengguna gunakan.
Untuk mengakses nilai saat ini dari variabel lebar sistem atau variabel pengguna di Jawa, lihat di bawah:
Untuk informasi lebih lanjut tentang variabel lingkungan, lihat halaman wikipedia ini .
Pastikan juga variabel lingkungan yang Anda coba baca sudah diatur dengan benar sebelum memanggil Java dengan melakukan:
Anda harus melihat nilai variabel lingkungan. Jika tidak, Anda mungkin perlu membuka kembali shell (DOS) atau keluar dan masuk kembali.
sumber
getenv
harus dalam kasus kecil, bukangetEnv
benar?echo %var%
mencetaknya%var%
. Jika saya mencoba,echo $var
itu berfungsi dan menampilkan nilai variabel env itu. Sayagetenv
mengembalikan nol.%var%
digunakan untuk windows,$var
untuk sistem unix / linux / MacOS.Ada beberapa detail yang menarik ketika mendapatkan properti sistem / lingkungan.
Pertama,
System.getenv(String)
diperkenalkan cara kembali-saat, kemudian ditinggalkan. Penghentian (bodohnya, IHMO) terus berlanjut hingga JSE 1.4 .Itu kembali diperkenalkan di BEJ 5 .
Itu diatur menggunakan panel Variabel Lingkungan di Windows. Perubahan pada variabel mungkin tidak diambil sampai VM Anda saat ini dimatikan, dan instance CMD.exe keluar.
Berbeda dengan properti lingkungan, Java juga memiliki properti sistem Java, dapat diakses melalui
System.getProperties()
. Variabel-variabel ini dapat diinisialisasi ketika VM mulai menggunakan argumen baris perintah seri . Misalnya, nilai untuk properti dan-Dname=value
maxInMemory
pagingDirectory
diatur dalam perintah di bawah ini:Properti ini dapat dimodifikasi saat runtime, kecuali pembatasan kebijakan keamanan.
sumber
Sebenarnya variabel dapat diatur atau tidak, jadi, di Java 8 atau lebih tinggi nilai nullable-nya harus dibungkus menjadi
Optional
objek, yang memungkinkan fitur yang sangat bagus. Dalam contoh berikut, kami akan mencoba mendapatkan variabelENV_VAR1
, jika tidak ada, kami dapat membuang beberapa Pengecualian khusus untuk mengingatkan tentang hal itu:sumber
Google mengatakan untuk memeriksa getenv () :
Saya tidak yakin bagaimana variabel sistem berbeda dari variabel lingkungan, jadi jika Anda bisa mengklarifikasi saya bisa membantu lebih banyak.
sumber
Sudahkah Anda mencoba me-reboot sejak Anda mengatur variabel lingkungan?
Tampaknya Windows menyimpan variabel lingkungannya dalam beberapa jenis cache, dan me-reboot adalah salah satu metode untuk menyegarkannya. Saya tidak yakin tetapi mungkin ada metode yang berbeda, tetapi jika Anda tidak akan terlalu sering mengubah nilai variabel Anda, ini mungkin cukup baik.
sumber
Seperti yang disebutkan oleh sombody di atas, restart gerhana bekerja untuk saya untuk variabel lingkungan yang ditentukan pengguna. Setelah saya restart IDE gerhana,
System.getenv()
mengambil variabel lingkungan saya.sumber
Apakah Anda menggunakan sistem linux? Jika demikian, pastikan Anda mengekspor variabel Anda.
Saya mendapatkan nol kecuali jika saya menggunakan ekspor untuk menentukan nilai secara global.
sumber