Javaの「user.dir」プロパティ-正確にはどういう意味ですか?


100

user.dir単体テスト(多くのファイルを作成する)のベースディレクトリとしてdir を使用したい。このプロパティが現在の作業ディレクトリを指していることは正しいですか(たとえば、「cd」コマンドで設定)。


2
stackoverflow.com/a/840229/3159183に記載されているように、-Duser.dirフラグはFileオブジェクト(フルパスが指定されていない場合)に影響しますが、オブジェクトには影響しないことに注意してくださいFileOutPutStream。デフォルトのディレクトリが両方に一致することを確認する場合は、cdJavaを起動する前に行う必要があります。
SeldomNeedy 2016年

回答:


142

これjavaは、JVMを起動した実行元のディレクトリです。ユーザーのホームディレクトリ内にある必要はありません。ユーザーがjavaを実行する権限を持つ場所であればどこでもかまいません。

もしあればcd/somedir、そしてあなたのプログラムを実行し、user.dirなります/somedir

別のプロパティはuser.home、ユーザーディレクトリを参照します。同様に/Users/myuserまたは/home/myuserまたはC:\Users\myuser

システムプロパティとその説明のリストについては、ここを参照してください。


修正。user.dirはどうですか?
johnny-b-

3
投稿する前に読んでください。ただし、「ユーザー作業ディレクトリ」は最良の説明ではありません。同意してください。
johnny-b-goode 2013

それは、すべてのJavaバージョンのTomcatの設定にあればという意味であるuser.dirを指している/usr/share/tomcatと我々のコンフィグレーションでは、このような何かを追加します。file:./configそれはを指します/usr/share/tomcat/config常に?
Marcin Kapusta


8

通常、これはアプリ(java)が起動したディレクトリ(working dir)です。「通常は」変更できるため、たとえば、Runtime.exec(String[] cmdarray, String[] envp, File dir)


値は、mavenシステムによるjunitテストの実行中にのみ必要です。
johnny-b-goode 2013

1
MACで変更すると、次のようなテストが失敗しますstackoverflow.com/questions/45130661/… :( :(
Dean Hiller

3

System.getProperty("user.dir") 現在のプロジェクトのワークスペースのディレクトリまたはパスを取得します

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.