Ich möchte user.dir
dir als Basisverzeichnis für meine Unit-Tests verwenden (das erstellt viele Dateien). Ist es richtig, dass diese Eigenschaft auf das aktuelle Arbeitsverzeichnis verweist (z. B. mit dem Befehl 'cd' festgelegt)?
99
-Duser.dir
FlagFile
Objekte betrifft (wenn ihnen kein vollständiger Pfad zugewiesen wurde ), jedoch keineFileOutPutStream
Objekte. Wenn Sie sicherstellen möchten, dass das Standardverzeichnis für beide übereinstimmt, sollten Sie dies tun,cd
bevor Sie Java starten.Antworten:
Es ist das Verzeichnis
java
, von dem aus die JVM gestartet wurde. Muss sich nicht im Home-Verzeichnis des Benutzers befinden. Es kann überall dort sein, wo der Benutzer die Berechtigung hat, Java auszuführen.Also, wenn Sie
cd
in/somedir
, dann führen Sie Ihr Programm,user.dir
wird sein/somedir
.Eine andere Eigenschaft
user.home
bezieht sich auf das Benutzerverzeichnis. Wie in/Users/myuser
oder/home/myuser
oderC:\Users\myuser
.Siehe hier für eine Liste von Systemeigenschaften und die Beschreibungen.
quelle
user.dir
auf/usr/share/tomcat
und in der Konfiguration gezeigt wird, Folgendes hinzugefügt wird:file:./config
Dann wird immer darauf hingewiesen/usr/share/tomcat/config
?user.dir
ist das "Benutzerarbeitsverzeichnis" gemäß Java Tutorial, Systemeigenschaftenquelle
In der Regel ist dies das Verzeichnis, in dem Ihre App (Java) gestartet wurde (Arbeitsverzeichnis). "Normalerweise", da es geändert werden kann, z. B. wenn Sie eine App mit ausführen
Runtime.exec(String[] cmdarray, String[] envp, File dir)
quelle
System.getProperty("user.dir")
Ruft das Verzeichnis oder den Pfad des Arbeitsbereichs für das aktuelle Projekt abquelle