Właściwość „user.dir” języka Java - co to dokładnie oznacza?


100

Chcę użyć user.dirkatalogu dir jako podstawowego katalogu dla moich testów jednostkowych (który tworzy wiele plików). Czy to prawda, że ​​ta właściwość wskazuje na bieżący katalog roboczy (np. Ustawiony poleceniem „cd”)?


2
Jak podano na stackoverflow.com/a/840229/3159183 , pamiętaj, że -Duser.dirflaga wpływa na Fileobiekty (jeśli nie mają pełnej ścieżki), ale nie na FileOutPutStreamobiekty. Jeśli chcesz mieć pewność, że katalog domyślny jest zgodny z obydwoma, powinieneś cdprzed uruchomieniem Javy.
RzadkoNeedy

Odpowiedzi:


142

Jest to katalog, z którego javazostała uruchomiona maszyna JVM. Nie musi znajdować się w katalogu domowym użytkownika. Może to być wszędzie tam, gdzie użytkownik ma uprawnienia do uruchamiania Java.

Więc jeśli cdsię /somedir, a następnie uruchomić program,user.dir będzie /somedir.

Inna właściwość user.homeodnosi się do katalogu użytkownika. Jak w /Users/myuserlub /home/myuserlubC:\Users\myuser .

Zobacz tutaj listę właściwości systemu i ich opisy.


Poprawione. A co z user.dir?
johnny-b-goode

3
Już go przeczytałem przed wysłaniem. Ale „Katalog roboczy użytkownika” nie jest najlepszym wyjaśnieniem, mam nadzieję, że się z tym zgadzasz.
johnny-b-goode

Czy to oznacza, że ​​w konfiguracji tomcat dla wszystkich wersji java, jeśli user.dirwskazuje na, /usr/share/tomcataw config dodajemy coś takiego: file:./configto będzie wskazywać /usr/share/tomcat/configzawsze?
Marcin Kapusta


8

Zazwyczaj jest to katalog, w którym została uruchomiona Twoja aplikacja (java) (katalog roboczy). „Zwykle”, ponieważ można to zmienić, np. Podczas uruchamiania aplikacji zRuntime.exec(String[] cmdarray, String[] envp, File dir)


Wartość jest potrzebna tylko podczas wykonywania testów junit przez system maven.
johnny-b-goode

2
a kiedy zmienisz to na MAC, psuje takie rzeczy jak ten test stackoverflow.com/questions/45130661/… :( :(
Dean Hiller

3

System.getProperty("user.dir") pobiera katalog lub ścieżkę obszaru roboczego dla bieżącego projektu

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.