Properti "user.dir" Java - apa sebenarnya artinya?


100

Saya ingin menggunakan user.dirdir sebagai dir dasar untuk pengujian unit saya (yang membuat banyak file). Apakah benar bahwa properti ini menunjuk ke direktori kerja saat ini (misalnya diatur oleh perintah 'cd')?


2
Seperti yang dinyatakan di stackoverflow.com/a/840229/3159183 , perlu diingat bahwa -Duser.dirbendera memengaruhi Fileobjek (jika tidak diberi jalur lengkap) tetapi bukan FileOutPutStreamobjek. Jika Anda ingin memastikan direktori default cocok untuk keduanya, Anda harus cdsebelum Anda memulai Java.
SeldomNeedy

Jawaban:


142

Ini adalah direktori tempat javadijalankannya, tempat Anda memulai JVM. Tidak harus berada dalam direktori home pengguna. Itu bisa di mana saja di mana pengguna memiliki izin untuk menjalankan java.

Jadi jika Anda cdmasuk /somedir, maka jalankan program Anda, user.dirnanti /somedir.

Properti berbeda user.home,, mengacu pada direktori pengguna. Seperti dalam /Users/myuseratau /home/myuseratau C:\Users\myuser.

Lihat di sini untuk daftar properti sistem dan deskripsinya.


Diperbaiki. Bagaimana dengan user.dir?
johnny-b-goode

3
Sudah membacanya sebelum memposting. Tapi "Direktori kerja pengguna" bukanlah penjelasan terbaik, harap Anda setuju.
johnny-b-goode

Apakah itu berarti bahwa pada konfigurasi tomcat untuk semua versi java jika user.dirmenunjuk ke /usr/share/tomcatdan dalam konfigurasi kita menambahkan sesuatu seperti ini: file:./configmaka itu akan menunjuk ke /usr/share/tomcat/configselalu?
Marcin Kapusta


8

Biasanya ini adalah direktori tempat aplikasi Anda (java) dimulai (working dir). "Biasanya" karena dapat diubah, misalnya saat Anda menjalankan aplikasi denganRuntime.exec(String[] cmdarray, String[] envp, File dir)


Nilai diperlukan hanya selama eksekusi uji junit oleh sistem maven.
johnny-b-goode

1
dan ketika Anda mengubahnya di MAC, itu merusak hal-hal seperti tes ini stackoverflow.com/questions/45130661/… :( :(
Dean Hiller

3

System.getProperty("user.dir") mengambil direktori atau jalur ruang kerja untuk proyek saat ini

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.