web-dev-qa-db-fra.com

Comment définir une propriété système Java afin qu'elle soit efficace chaque fois que je démarre la JVM sans l'ajouter aux arguments de la ligne de commande

Il y a eu un changement dans Java 1.7 dans la façon dont les paramètres régionaux par défaut sont obtenus à partir du système d'exploitation. Il existe des méthodes pour restaurer l'ancien comportement, par exemple en définissant l'indicateur -Dsun.locale.formatasdefault = true lorsque démarrage d'une instance JVM.

Je voudrais définir ce drapeau de manière permanente afin de ne pas avoir à le spécifier dans les arguments de ligne de commande chaque fois que je démarre une instance JVM. Existe-t-il un fichier ou toute autre possibilité pour modifier les paramètres par défaut de la JVM? Quelque chose comme le fichier Eclipse.ini mais pour la JVM elle-même?

35
Bug Pecker

Vous pouvez définir la variable d'environnement set Java_TOOL_OPTIONS dans votre système d'exploitation. Tous les outils Java (Java, javac, ..) récupèreront cette variable et l'utiliseront. Vous pouvez par exemple utiliser

SET Java_TOOL_OPTIONS=-Dsun.locale.formatasdefault=true

J'utilise ceci pour forcer un environnement local spécifique pour chaque machine virtuelle Java.

Mais cela ne fonctionne que si votre application est démarrée via les outils Java. Si elle est par exemple lancée à partir d'un programme C qui appelle jvm DLL cela ne fonctionnera pas être utilisé.

Edit: je viens de le tester, et il semble que Java_TOOLS_OPTIONS soit également récupéré au démarrage des DLL (vérifié avec une application Swing qui utilise WinRun4J comme lanceur)

Voir: http://docs.Oracle.com/javase/7/docs/webnotes/tsg/TSG-VM/html/envvars.html

47