Изменение JVM в Java


18

Я только недавно обнаружил различные JVM на вики- странице и подумал, что начну возиться. Хотя было сложно найти документацию по настройке Java в Ubuntu.

Допустим, я хотел изменить JRE или JDK, которые я использую, я мог бы взломать терминал и сказать

sudo update-alternatives --config java

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

Если я правильно понимаю JVM (что вполне может быть не так), вы можете настроить openJDK на использование альтернативных JVM (например, JAMVM) и запустить его как таковой.

jamvm -jar foo.jar

2 вопроса,

1: у меня есть концепция JVM правильно? Как это возможно?

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: -server и -client. Если вы выбираете OpenJDK в качестве среды выполнения Java, у вас есть дополнительные опции.

Когда вы вводите javaв терминал без других параметров, в справке перечисляются несколько дополнительных виртуальных машин. Я не уверен, какие из них поставляются с 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 -server обычно используется по умолчанию. Вы также можете указать, -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 по умолчанию? Из того, что я слышал, -server имеет длительное время запуска, так почему же -client не используется по умолчанию для пользовательской установки?
Дхарди

Есть ли способ изменить значения по умолчанию или вам нужно явно устанавливать 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 KNOWN внутри файла jvm.cfg определяет JVM по умолчанию.

Инструмент для настройки недоступен, поэтому вам нужно найти и отредактировать эти файлы вручную.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.