web-dev-qa-db-ja.com

user.homeシステムプロパティを変更する

Javaプログラムの外部からuser.homeシステムプロパティを変更して、D:\ Documents and Settings \%USERNAME%とは異なるディレクトリであると見なされるようにするにはどうすればよいですか?環境変数を使用するか、 VM引数?

25
tekumara

設定VM引数は機能するはずです:

Java -Duser.home=<new_location> <your_program> 

ここにテストケースがあります:

public class test {
  public static void main(String[] args) {
    System.out.println(System.getProperty("user.home"));
  }
}

Java 1.5.0_17 on Win XPおよびLinux

Java test
/home/ChssPly76

Java -Duser.home=overwritten test
overwritten 
34
ChssPly76

すべてのJavaプログラムにuser.homeを設定する場合は、特別な環境変数_Java_OPTIONSを使用できます。

ただし、 警告メッセージを抑制するのは困難です であることに注意してください。

$ export _Java_OPTIONS=-Duser.home=/some/new/dir
$ Java test
Picked up _Java_OPTIONS: -Duser.home=/some/new/dir
/some/new/dir
21
joecracker