Зміна JVM на Java


18

Я нещодавно виявив різні JVM на сторінці вікі і подумав, що почну займатися. Було складно знайти документацію про те, як налаштувати Java на Ubuntu.

Скажімо, я хотів змінити JRE або JDK, який я використовую, я міг зламати термінал і сказати

sudo update-alternatives --config java

А потім виберіть одну з встановлених версій.

Якщо я розумію право JVM (що, можливо, я дуже не буду), ви можете налаштувати openJDK для використання альтернативних JVM (Eg JAMVM) і запустити його як таке

jamvm -jar foo.jar

2 питання,

1: Чи правильно у мене є концепція СП? Як в, чи можливо це?

2: Якщо так, як я конфігурую JVM і перемикаю за замовчуванням JVM на мій вибір?


Чудово, додайте хорошу відповідь на своє запитання (ви можете самі відповісти на них) і отримайте кілька голосів!
Бруно Перейра

@BrunoPereira Готово! Сподіваємось, це покриває купу.
OVERTONE

Відповіді:


18

Сміливо використовуйте це як посилання на майстерність з Java під час виконання.

Вибір вашого JRE

Щоб вибрати свій JRE, використовуйте

sudo update-alternatives --config java

Це дасть щось на кшталт наступного результату.

  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

Потім ви можете вибрати, який час виконання Java ви хочете, вибравши номер.


Вибір вашого JVM

Sun / Oracle мають два варіанти JVM -сервер та -client. Якщо ви вибрали OpenJDK як середовище виконання Java, у вас є додаткові параметри.

Коли ви вводите javaтермінал без інших параметрів, довідка перераховує кілька необов'язкових VM. Я не впевнений, які з них приходять з OpenJDK, але 3 популярні - JamVM, Zero та Cacao

Для їх використання просто введіть

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

Зазвичай, VM-сервер є типовим. Ви також можете вказати, -clientале в 64-бітному IcedTea6, схоже, працює така ж версія, як і -server. Найімовірніше, є й інші, але я вважаю, що варіант за замовчуванням є найбільш чуйним.


Налаштування пам’яті

Нарешті, як встановити пам'ять Java (лише тому, що)

java -Xmx1024m -Xms128m 'your other parameters here'

Це обмежує пам'ять, дозволену програмі Java максимум 1024 МБ, і встановлює її початковий об'єм пам'яті до 128 МБ. Це чудовий спосіб визначення мінімальних системних вимог. Сторінка команди Java 6 для javaкоманди описує ці параметри та інші.

Це все. Якщо у когось є додаткові налаштування Java для Ubuntu, залиште їх у коментарях, і я додам їх.


У $ JAVA_HOME / bin та $ JAVA_HOME / jre / bin є близько 47 виконуваних файлів, які кричать для сценарію, щоб оновити всі записи в системі альтернатив. Дивіться /usr/lib/jvm/.java*.jinfo файли.
користувач невідомий

Як встановити JVM за замовчуванням? З того, що я чув, -сервер має давні часи запуску, тож чому б не все-таки встановити за замовчуванням установку користувача?
безтурботний

Чи є спосіб змінити типові значення за замовчуванням, або вам потрібно щоразу (або в кожному окремому сценарії запуску) чітко встановлювати обмеження JVM та пам'яті?
аїй

0

Щоб встановити JVM за замовчуванням всередині установки OpenJDK, вам потрібно відредагувати файл конфігурації jvm.cfg, розташований всередині / usr / lib / jvm / java- версія -openjdk- arch / jre / lib / arch /jvm.cfg

Ubuntu відкриває файл jvm.cfg всередині каталогу / etc / залежно від версії OpenJDK. / etc / java-6-openjdk / jvm- arch .cfg або / etc / java-7-openjdk / jvm- arch .cfg

Верхня частина - jvmname Знання рядка у файлі jvm.cfg визначає JVM за замовчуванням.

Немає інструменту конфігурації, тому вам потрібно знайти та редагувати ці файли вручну.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.