Propriétés système Java

Propriétés classiques

Les propriétés système du niveau JVM ou JDK sont souvent utilisées en lecture. Voici une liste de quelques propriétés qu’on modifie souvent au démarrage.

  • -Duser.language=en pour forcer la langue par défaut de la JVM

  • -Duser.timezone=UTC, pour fixer le fuseau horaire de la JVM ; ce serait tellement plus simple si tout était en UTC

  • -Djava.io.tmpdir=…​ pour fixer le répertoire temporaire de la JVM

  • -Djava.awt.headless=true pour une application serveur qui utilise des classes AWT

  • -Djava.net.preferIPv4Stack=true pour forcer l’utilisation de IPv4, sinon les sockets sont ouvertes en priorité en IPv6

Modifier une propriété

Au démarrage

java -Duser.timezone=UTC Application

Dans le code

System.setProperty("java.home", "UTC");

Lire les propriétés (depuis le code)

System.getProperties()
      .list(System.out);
String home = System.getProperty("java.home");

// avec une valeur par défaut
String timezone = System.getProperty("user.timezone", "UTC");

Lire les propriétés (CLI)

java -XshowSettings:all -version
jinfo -sysprops <pid>
jcmd  <pid> VM.system_properties