Changer la JVM en Java

18

Je n'ai découvert que récemment les différentes JVM sur la page wiki et j'ai pensé commencer à bricoler. Il a été difficile de trouver de la documentation sur la façon de configurer Java sur Ubuntu.

Disons que je voulais changer le JRE ou le JDK que j'utilise, je pourrais ouvrir un terminal et dire

sudo update-alternatives --config java

Et puis choisissez parmi l'une des versions installées.

Si je comprends le droit de la JVM (ce que je peux très bien ne pas être), vous pouvez configurer l'openJDK pour utiliser des JVM alternatives (par exemple JAMVM) et l'exécuter en tant que tel

jamvm -jar foo.jar

2 questions,

1: Ai-je le concept d'une JVM à droite? Comme dans, est-ce possible?

2: Si oui, comment puis-je configurer la JVM et passer la valeur par défaut à une JVM de mon choix?

HARMONIQUE
la source
Super, ajoutez une bonne réponse à votre question (vous pouvez y répondre vous-même) et obtenez des votes!
Bruno Pereira
@BrunoPereira Done! J'espère que cela couvre le groupe.
OVERTONE

Réponses:

18

N'hésitez pas à l'utiliser comme référence pour bricoler Java lors de l'exécution.

Choisir votre JRE

Pour choisir votre JRE, utilisez

sudo update-alternatives --config java

Cela donnera quelque chose comme la sortie suivante.

  Selection    Path                                            Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-6-openjdk/jre/bin/java         1061      auto mode
* 1            /usr/lib/jvm/java-6-openjdk/jre/bin/java         1061      manual mode
  2            /usr/lib/jvm/java-6-sun/jre/bin/java             63        manual mode
  3            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1051      manual mode

Vous pouvez ensuite sélectionner le runtime Java que vous souhaitez via la sélection de numéros.


Choisir votre JVM

Sun / Oracle ont deux choix JVM, -server et -client. Si vous sélectionnez OpenJDK comme environnement d'exécution Java, vous disposez d'options supplémentaires.

Lorsque vous tapez javadans le terminal sans aucun autre paramètre, l'aide répertorie plusieurs machines virtuelles facultatives. Je ne sais pas lesquels sont livrés avec OpenJDK mais 3 populaires sont JamVM, Zero et Cacao

Pour les utiliser, tapez simplement

java -jamvm 'your other parameters here'
java -cacao 'your other parameters here'
java -zero 'your other parameters here'
java -server 'your other parameters here

La machine virtuelle du serveur est normalement celle par défaut. Vous pouvez également spécifier, -clientmais dans IcedTea6 64 bits, il semble exécuter la même version que -server. Il y en a probablement d'autres mais je trouve que l'option par défaut est la plus réactive.


Configuration de votre mémoire

Enfin, comment définir la mémoire de Java (juste parce que)

java -Xmx1024m -Xms128m 'your other parameters here'

Cela limite la mémoire autorisée pour le programme Java à un maximum de 1024 Mo et définit sa taille de mémoire initiale à 128 Mo. Il s'agit d'un excellent moyen de définir les exigences système minimales. La page de manuel Java 6 de la javacommande décrit ces options et d'autres.

C'est tout. Si quelqu'un a des ajustements Java supplémentaires pour Ubuntu, laissez-les dans les commentaires et je les ajouterai.

HARMONIQUE
la source
Il y a environ 47 fichiers exécutables dans $ JAVA_HOME / bin et $ JAVA_HOME / jre / bin qui réclame un script pour mettre à jour toutes les entrées dans le système alternatif. Voir les fichiers /usr/lib/jvm/.java*.jinfo.
utilisateur inconnu
Comment définir la JVM par défaut? D'après ce que j'ai entendu, -server a de longs temps de démarrage, alors pourquoi -client n'est-il pas la valeur par défaut de toute façon pour une installation utilisateur?
dhardy
Existe-t-il un moyen de modifier réellement les valeurs par défaut, ou devez-vous définir explicitement les limites de la JVM et de la mémoire à chaque fois (ou dans chaque script de démarrage individuel)?
aij
0

Pour définir la machine virtuelle Java par défaut dans une installation OpenJDK, vous devez modifier le fichier de configuration jvm.cfg situé dans la version / usr / lib / jvm / java- version -openjdk- arch / jre / lib / arch /jvm.cfg

Ubuntu expose le fichier jvm.cfg à l'intérieur du répertoire / etc / selon la version d'OpenJDK. / etc / java-6-openjdk / jvm- arch .cfg ou / etc / java-7-openjdk / jvm- arch .cfg

La ligne la plus en haut - jvmname KNOWN dans le fichier jvm.cfg détermine la machine virtuelle Java par défaut.

Aucun outil de configuration n'est disponible, vous devez donc localiser et modifier ces fichiers manuellement.

xranby
la source