Как мне изменить системное свойство user.home из-за пределов моей java-программы, так что он думает, что это другой каталог из D:\Documents and Settings\%USERNAME%? Через переменные среды или аргументы VM?
Изменение свойства системы user.home
Ответ 1
Настройка аргумента 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 на Win XP и Linux
java test
/home/ChssPly76
java -Duser.home=overwritten test
overwritten
Ответ 2
Если вы хотите установить 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