Как изменить системное свойство user.home из-за пределов моей java-программы, так что он считает, что это другой каталог из D: \ Documents and Settings \% USERNAME%? Через переменные среды или аргументы VM?Изменение системного свойства user.home
20
A
ответ
29
Установка 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
15
Если вы хотите для установки user.home
для всех программ Java, вы можете использовать специальную переменную окружения _JAVA_OPTIONS
.
Обратите внимание, что a difficult to suppress warning message will be printed.
$ export _JAVA_OPTIONS=-Duser.home=/some/new/dir
$ java test
Picked up _JAVA_OPTIONS: -Duser.home=/some/new/dir
/some/new/dir
На самом деле, я попробовал это, и это, кажется, не работает ... – weiji
я попытался это слишком, работает просто отлично - смотрите мое обновление для образца кода. С какой версией java вы это попробовали? – ChssPly76
Это может быть проблема экранирования оболочки. – daveb