Java Language Options Java


Exemple

La commande java prend en charge un large éventail d'options:

  • Toutes les options commencent par un seul trait d'union ou un signe moins ( - ): la convention GNU / Linux consistant à utiliser -- pour les options "long" n'est pas prise en charge.

  • Les options doivent apparaître avant la <classname> ou le -jar <jarfile> argument pour être reconnu. Tous les arguments après ceux-ci seront traités comme des arguments à transmettre à l'application Java en cours d'exécution.

  • Les options qui ne commencent pas par -X ou -XX sont des options standard. Vous pouvez compter sur toutes les implémentations Java 1 pour prendre en charge toute option standard.

  • Les options commençant par -X sont des options non standard et peuvent être retirées d'une version Java à l'autre.

  • Les options commençant par -XX sont des options avancées et peuvent également être retirées.

Définition des propriétés du système avec -D

L'option -D<property>=<value> est utilisée pour définir une propriété dans l'objet Properties du système. Ce paramètre peut être répété pour définir différentes propriétés.

Options de mémoire, d'empilage et de récupération de mémoire

Les principales options de contrôle du tas et de la taille des piles sont documentées dans la section Définition des tailles de tas, PermGen et Stack . (Note de la rédaction: les options du récupérateur de place doivent être décrites dans le même sujet.)

Activation et désactivation des assertions

Les options -ea et -da activent et désactivent respectivement la vérification Java assert :

  • Toute vérification des assertions est désactivée par défaut.
  • L'option -ea permet de vérifier toutes les assertions
  • Le -ea:<packagename>... permet de vérifier les assertions dans un package et tous les sous-packages .
  • Le -ea:<classname>... permet de vérifier les assertions d'une classe.
  • L'option -da désactive la vérification de toutes les assertions
  • Le -da:<packagename>... désactive la vérification des assertions dans un paquet et dans tous les sous-paquets .
  • -da:<classname>... désactive la vérification des assertions dans une classe.
  • L'option -esa permet de vérifier toutes les classes de système.
  • L'option -dsa désactive la vérification pour toutes les classes système.

Les options peuvent être combinées. Par exemple.

$ # Enable all assertion checking in non-system classes 
$ java -ea -dsa MyApp

$ # Enable assertions for all classes in a package except for one.
$ java -ea:com.wombat.fruitbat... -da:com.wombat.fruitbat.Brickbat MyApp

Notez que l'activation de la vérification d'assertion est susceptible de modifier le comportement d'une programmation Java.

  • Il est responsable de rendre l'application plus lente en général.
  • Cela peut entraîner des méthodes plus longues à exécuter, ce qui peut changer la synchronisation des threads dans une application multithread.
  • Il peut introduire des relations entre événements par hasard et provoquer des anomalies de la mémoire.
  • Une mauvaise application assert déclaration pourrait avoir des effets secondaires indésirables.

Sélection du type de machine virtuelle

Les options -client et -server vous permettent de sélectionner deux formes différentes de la machine virtuelle HotSpot:

  • Le formulaire "client" est adapté aux applications utilisateur et offre un démarrage plus rapide.
  • Le formulaire "serveur" est conçu pour des applications de longue durée. Il faut plus de temps pour capturer les statistiques pendant le "warm-up" de la JVM, ce qui permet au compilateur JIT d'optimiser le code natif.

Par défaut, la JVM fonctionnera en mode 64 bits si possible, en fonction des capacités de la plate-forme. Les options -d32 et -d64 vous permettent de sélectionner le mode explicitement.


1 - Consultez le manuel officiel de la commande java . Parfois, une option standard est décrite comme "susceptible de changer".