JVM in Java ändern

18

Ich habe erst kürzlich die verschiedenen JVMs auf der Wiki- Seite entdeckt und dachte, ich würde anfangen zu basteln. Es war jedoch schwierig, eine Dokumentation zur Konfiguration von Java unter Ubuntu zu finden.

Nehmen wir an, ich wollte die JRE oder das JDK, die ich verwende, ändern, ich könnte ein Terminal aufbrechen und sagen

sudo update-alternatives --config java

Und dann wählen Sie aus einer der installierten Versionen.

Wenn ich das Recht von JVM verstehe (was ich sehr wohl nicht verstehe), können Sie das openJDK so konfigurieren, dass es alternative JVMs (z. B. JAMVM) verwendet und als solche ausführt

jamvm -jar foo.jar

2 Fragen,

1: Habe ich das Konzept einer JVM richtig? Wie in, ist das möglich?

2: Wenn ja, wie konfiguriere ich die JVM und ändere die Standardeinstellung auf eine JVM meiner Wahl?

OBERTON
quelle
Füge deiner Frage eine gute Antwort hinzu (du kannst sie selbst beantworten) und erhalte ein paar positive Stimmen!
Bruno Pereira
@BrunoPereira Fertig! Hoffentlich deckt das den Haufen.
OVERTONE

Antworten:

18

Fühlen Sie sich frei, dies als Referenz für das Basteln mit Java zur Laufzeit zu verwenden.

Wählen Sie Ihre JRE

Verwenden Sie, um Ihre JRE auszuwählen

sudo update-alternatives --config java

Dies ergibt ungefähr die folgende Ausgabe.

  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

Sie können dann über die Nummernauswahl die gewünschte Java-Laufzeit auswählen.


Auswahl Ihrer JVM

Sun / Oracle verfügt über zwei JVM-Optionen: -server und -client. Wenn Sie das OpenJDK als Java-Laufzeitumgebung auswählen, haben Sie zusätzliche Optionen.

Wenn Sie javaohne weitere Parameter in das Terminal eingeben, werden in der Hilfe mehrere optionale VMs aufgelistet. Ich bin nicht sicher, welche mit OpenJDK kommen, aber 3 beliebte sind JamVM, Zero und Cacao

Um diese zu verwenden, geben Sie einfach ein

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

Die -server VM ist normalerweise die Standardeinstellung. Sie können auch angeben, -clientaber in 64-Bit-IcedTea6 wird anscheinend dieselbe Version wie in -server ausgeführt. Es gibt höchstwahrscheinlich andere, aber ich finde, dass die Standardoption am reaktionsfähigsten ist.


Speicher einstellen

Zum Schluss, wie man den Speicher von Java einstellt (nur weil)

java -Xmx1024m -Xms128m 'your other parameters here'

Dadurch wird der für das Java-Programm zulässige Speicher auf maximal 1024 MB begrenzt und die anfängliche Speichergröße auf 128 MB festgelegt. Dies ist eine großartige Methode, um minimale Systemanforderungen zu definieren. In der Java 6-Manpage für den javaBefehl werden diese und andere Optionen beschrieben.

Das ist alles. Wenn jemand zusätzliche Java-Optimierungen für Ubuntu hat, lassen Sie sie in den Kommentaren und ich werde sie hinzufügen.

OBERTON
quelle
Es gibt ungefähr 47 ausführbare Dateien in $ JAVA_HOME / bin und $ JAVA_HOME / jre / bin, die nach einem Skript zum Aktualisieren aller Einträge im alternativen System verlangen. Siehe die Dateien /usr/lib/jvm/.java*.jinfo.
Benutzer unbekannt
Wie lege ich die Standard-JVM fest? Nach allem, was ich gehört habe, hat -server lange Startzeiten. Warum ist -client also nicht die Standardeinstellung für eine Benutzerinstallation?
Dhardy
Gibt es eine Möglichkeit, die Standardeinstellungen tatsächlich zu ändern, oder müssen Sie die JVM- und Speicherbeschränkungen jedes Mal (oder in jedem einzelnen Startskript) explizit festlegen?
Aij
0

Um die Standard-JVM in einer OpenJDK-Installation festzulegen, müssen Sie die Konfigurationsdatei jvm.cfg bearbeiten, die sich in der Datei /usr/lib/jvm/java- version -openjdk- arch /jre/lib/ arch / jvm.cfg befindet

Ubuntu macht die Datei jvm.cfg im Verzeichnis / etc / abhängig von der OpenJDK-Version verfügbar. / etc / java-6-openjdk / jvm- arch .cfg oder / etc / java-7-openjdk / jvm- arch .cfg

Die oberste - jvmname BEKANNTE Zeile innerhalb der jvm.cfg Datei des Standard - JVM bestimmen.

Es ist kein Konfigurationstool verfügbar. Sie müssen diese Dateien daher manuell suchen und bearbeiten.

xranby
quelle