Автор Тема: OpenJDK - как работать с разными версиями?  (Прочитано 1776 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн su16

  • Местный житель
  • ***
  • Topic Author
  • Сообщений: 191
  • Сообщений: 174
Доброго времени!

Вопрос простой - как поставить OpenJDK 6, 7, 8 в /opt, не подтягивая зависимостей в основную систему, как это у оракловой версии?
« Последнее редактирование: 27 Сентябрь 2015, 02:01:02 от su16 »
Если вам дают бесплатное, то, скорее всего, товар - это вы.
http://ru.occupyflash.org/
 


Оффлайн su16

  • Местный житель
  • ***
  • Topic Author
  • Сообщений: 191
  • Сообщений: 174
Re: OpenJDK - как работать с разными версиями?
« Ответ #1 : 02 Октябрь 2015, 20:03:33 »
понятно, standalone версии нет :'(
Если вам дают бесплатное, то, скорее всего, товар - это вы.
http://ru.occupyflash.org/
 

Оффлайн GRAY_BW

  • Новичок форума
  • Сообщений: 9
Re: OpenJDK - как работать с разными версиями?
« Ответ #2 : 15 Январь 2016, 21:22:36 »
Лучше поздно, чем никогда.  ::)

Если есть любой установленный дистрибутив (даже в виртуальной машине) можно упаковать для себя эти jdk из /usr/lib/jvm/** или из бинарных пакетов.
Иногда JDK и JRE отдельными каталогами. Тогда из JDK нужно удалить symlink на JRE, JRE скопировать в JDK и переименовать, например, из openjdk-7-jre-headless в jre.
Если это нужно для серверных приложений, полезно не забывать создавать правильное окружение для приложения.
Можно прямо в запускающем скрипте (для начала).
Нужно заметить, всё что касается обработки шрифтов и картинок на стороне сервера наверняка будет глючить из за недоустановленных зависимостей.

На примере catalina.sh от TomCat, в самом начале скрипта:

JAVA_HOME=/opt/openjdk-7-jdk ; export JAVA_HOME
#JRE_HOME=/opt/openjdk-7-jre-headless ; export JRE_HOME ## если jre отдельным каталогом
PATH=$JAVA_HOME/bin:$PATH; export PATH

Модный "головняк" PermGen для начинающих;
Java6 и Java7 флаг -XX:MaxPermSize=192m (у меня в примере 192m от фонаря, поставьте своё значение)
Java8 -XX:MaxMetaspaceSize=192m

Java6 и Java7 по умолчанию выделяют 64m (по моему, или вообще 32) и приложение будет вываливаться по OutOfMemory (недостаточно памяти).
В Java8 на Metaspace безлимит, и если вы сделаете MemoryLeak (утечка памяти), а начинающему это очень легко, то будет съедена память всей системы.

Java6 и Java7 с флагом -XX:MaxMetaspaceSize не запустятся.

Для разработки удобнее использовать SDKMAN http://sdkman.io/index.html
Ничего не устанавливает в корень системы, устанавливается в учётную запись пользователя обычным скриптом, окружения создаются в ~/.bashrc . Каталоги компонентов будут в каталоге ~/.sdkman/**

Если делать серьёзнее, тогда можно воспользоваться пакетом от webupd8-team для Ubuntu.
Подробности тут https://debianforum.ru/index.php?topic=5407.0

ах, да! Совсем забыл. Если совсем серьёзно нужно, гляньте вот сюда, там есть для Debian.
http://www.azul.com/downloads/zulu/


Ещё одна "модная" мантра для Java в Linux, если начнёт вдруг жутко тупить на развёртывании приложений и старте серверов добавляйте вот этот флажок
 -Djava.security.egd=file:/dev/./urandom

Простого, дефолтного /dev/urandom мало, мякотка в точке между /dev/ и /urandom

Успехов вам!
« Последнее редактирование: 28 Январь 2016, 18:49:42 от GRAY_BW »
 
Пользователи, которые поблагодарили этот пост: su16

Оффлайн su16

  • Местный житель
  • ***
  • Topic Author
  • Сообщений: 191
  • Сообщений: 174
Re: OpenJDK - как работать с разными версиями?
« Ответ #3 : 29 Январь 2016, 23:34:57 »
поздно только "никогда".
спасибо, интересная инфа.

Честно говоря, разархивирование деб пакетов в /opt, из моего опыта, ни к чему хорошему не приводило.
поломаные зависимости могут обернуться гейзенбагами при отладке.

Я поизучал вопрос, и если не упираться в религию, то с техноческой точки зрения разницы между оракловым и открытым пакетом нет никакой.
у меня была другая идея - установить разные версии OpenJDK в разные чруты, а мой код шарить между ними... но я как-то забил и просто поставил несколько стенделон оракловых жаб в /opt.

ссылки ваши весьма любопытны, покурю их на досуге.  ;)
« Последнее редактирование: 29 Январь 2016, 23:39:42 от su16 »
Если вам дают бесплатное, то, скорее всего, товар - это вы.
http://ru.occupyflash.org/
 

Теги: