Zmiana JVM w Javie


18

Dopiero niedawno odkryłem różne maszyny JVM na stronie wiki i pomyślałem, że zacznę majsterkować. Trudno jednak znaleźć dokumentację dotyczącą konfiguracji Java na Ubuntu.

Powiedzmy, że chciałem zmienić środowisko JRE lub JDK, którego używam, mogę otworzyć terminal i powiedzieć

sudo update-alternatives --config java

A następnie wybierz jedną z zainstalowanych wersji.

Jeśli rozumiem prawo JVM (co może nie być), możesz skonfigurować openJDK do korzystania z alternatywnych JVM (np. JAMVM) i uruchomić go jako taki

jamvm -jar foo.jar

2 pytania,

1: Czy mam koncepcję JVM? Czy to możliwe?

2: Jeśli tak, jak skonfigurować JVM i przełączyć domyślną na wybraną przez siebie JVM?


Świetnie, dodaj dobrą odpowiedź na swoje pytanie (możesz sam na nie odpowiedzieć) i zdobądź trochę głosów!
Bruno Pereira

@BrunoPereira Gotowe! Mam nadzieję, że to obejmuje całą grupę.
OVERTONE

Odpowiedzi:


18

Możesz to wykorzystać jako odniesienie do majsterkowania przy Javie w czasie wykonywania.

Wybór środowiska JRE

Aby wybrać środowisko JRE, użyj

sudo update-alternatives --config java

To da coś takiego jak następujący wynik.

  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

Następnie możesz wybrać, który środowisko wykonawcze Java chcesz, poprzez wybór numeru.


Wybór JVM

Sun / Oracle ma dwie opcje JVM: -server i -client. Jeśli wybierzesz OpenJDK jako środowisko wykonawcze Java, masz dodatkowe opcje.

Po wpisaniu javado terminala bez innych parametrów pomoc wyświetla listę kilku opcjonalnych maszyn wirtualnych. Nie jestem pewien, które są dostarczane z OpenJDK, ale 3 popularne to JamVM, Zero i Cacao

Aby z nich skorzystać, wystarczy wpisać

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

-Server VM jest zwykle domyślna. Możesz także określić, -clientale w 64-bitowej wersji IcedTea6 wydaje się działać w tej samej wersji co -server. Są prawdopodobnie inne, ale uważam, że opcja domyślna jest najbardziej responsywna.


Ustawianie pamięci

Wreszcie, jak ustawić pamięć Java (tylko dlatego)

java -Xmx1024m -Xms128m 'your other parameters here'

Ogranicza to pamięć dozwoloną dla programu Java do maksymalnie 1024 MB i ustawia jej początkową wielkość pamięci na 128 MB. Jest to świetny sposób na zdefiniowanie minimalnych wymagań systemowych. Strona Java 6 człowiek na javakomendzie opisuje te opcje i innych.

To wszystko. Jeśli ktoś ma dodatkowe poprawki Java dla Ubuntu, zostaw je w komentarzach, a ja je dodam.


W $ JAVA_HOME / bin i $ JAVA_HOME / jre / bin znajduje się około 47 plików wykonywalnych, które wymagają skryptu, aby zaktualizować wszystkie wpisy w systemie alternatyw. Zobacz pliki /usr/lib/jvm/.java*.jinfo.
użytkownik nieznany

Jak ustawić domyślną maszynę JVM? Z tego, co usłyszałem, -server ma długi czas uruchamiania, więc dlaczego -client i tak nie jest domyślny dla instalacji użytkownika?
opóźniony

Czy istnieje sposób na rzeczywistą zmianę wartości domyślnych, czy też trzeba jawnie ustawić JVM i limity pamięci za każdym razem (lub w każdym skrypcie uruchamiania)?
aij

0

Aby ustawić domyślną maszynę JVM w instalacji OpenJDK, należy edytować plik konfiguracyjny jvm.cfg znajdujący się w / usr / lib / jvm / java- version -openjdk- arch / jre / lib / arch /jvm.cfg

Ubuntu udostępnia plik jvm.cfg w katalogu / etc / w zależności od wersji OpenJDK. / etc / java-6-openjdk / jvm- arch .cfg lub / etc / java-7-openjdk / jvm- arch .cfg

Najwyższa pozycja - jvmname ZNANA linia w pliku jvm.cfg określa domyślną maszynę JVM.

Nie ma dostępnego narzędzia konfiguracyjnego, dlatego musisz ręcznie zlokalizować i edytować te pliki.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.