web-dev-qa-db-fra.com

Modification de la machine virtuelle Java dans Java

Je viens de découvrir récemment les différentes machines virtuelles sur la page wiki et je pensais 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 l'une des versions installées.

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

jamvm -jar foo.jar

2 questions

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

2: Si oui, comment puis-je configurer la machine virtuelle Java et basculer la valeur par défaut sur une machine virtuelle de mon choix?

18
OVERTONE

N'hésitez pas à utiliser cela comme référence au bricolage avec Java au moment 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 de votre choix via la sélection de numéro.


Choisir votre machine virtuelle

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

Lorsque vous tapez Java dans le terminal sans autre paramètre, l'aide répertorie plusieurs ordinateurs virtuels facultatifs. Je ne sais pas lesquels sont fournis avec OpenJDK, mais 3 les plus 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

Le -server VM est normalement la valeur par défaut. Vous pouvez également spécifier -client mais 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.


Réglage 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. C'est un excellent moyen de définir les exigences système minimales. La page de manuel Java 6 de la commande Java décrit ces options et d’autres.

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

18
OVERTONE

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 le répertoire/usr/lib/jvm/Java -version - openjdk -Arch /jre/lib/Arch/jvm.cfg

Ubuntu expose le fichier jvm.cfg dans le répertoire/etc/en fonction de 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 CONNU du fichier jvm.cfg détermine la JVM par défaut.

Il n'y a pas d'outil de configuration disponible, vous devez donc localiser et éditer ces fichiers manuellement.

0
xranby