Comment puis-je modifier la propriété système user.home de l'extérieur de mon programme java, afin qu'elle pense qu'il s'agit d'un répertoire différent de D: \ Documents and Settings \% USERNAME%? Via des variables d'environnement, ou des arguments VM?Modifier la propriété système user.home
20
A
Répondre
29
Réglage argument de VM devrait fonctionner:
java -Duser.home=<new_location> <your_program>
est ici un test:
public class test {
public static void main(String[] args) {
System.out.println(System.getProperty("user.home"));
}
}
Testé avec Java 1.5.0_17 sur Win XP et Linux
java test
/home/ChssPly76
java -Duser.home=overwritten test
overwritten
15
Si vous voulez Pour définir user.home
pour tous les programmes Java, vous pouvez utiliser la variable d'environnement spécial _JAVA_OPTIONS
.
Mais notez qu'un 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
En fait, j'ai essayé cela, et il ne semble pas fonctionner ... – weiji
Je l'ai essayé fonctionne aussi très bien - voir ma mise à jour pour exemple de code. Quelle version de Java avez-vous essayé avec? – ChssPly76
Il pourrait s'agir d'un problème d'échappement de shell. – daveb