29

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

4

2 に答える 2

40

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

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

テストケースは次のとおりです。

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

WinXPおよびLinuxでjava1.5.0_17でテスト済み

java test
/home/ChssPly76

java -Duser.home=overwritten test
overwritten 
于 2009-09-30T23:51:25.820 に答える
26

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

ただし、抑制が難しい警告メッセージが出力されることに注意してください。

$ export _JAVA_OPTIONS=-Duser.home=/some/new/dir
$ java test
Picked up _JAVA_OPTIONS: -Duser.home=/some/new/dir
/some/new/dir
于 2013-09-17T10:34:00.450 に答える