Изменить системное свойство user.home - PullRequest
21 голосов
/ 01 октября 2009

Как изменить системное свойство user.home из-за пределов моей java-программы, чтобы оно считало каталог, отличный от каталога D: \ Documents and Settings \% USERNAME%? Через переменные окружения или аргументы ВМ?

Ответы [ 2 ]

31 голосов
/ 01 октября 2009

Настройка аргумента ВМ должна работать:

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 на Win XP и Linux

java test
/home/ChssPly76

java -Duser.home=overwritten test
overwritten 
16 голосов
/ 17 сентября 2013

Если вы хотите установить 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
...