Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
linux_faq:multiple_java_versions [2020/12/09 15:26] – created adminlinux_faq:multiple_java_versions [2020/12/09 16:00] (current) admin
Line 1: Line 1:
 +Мне необходимо собирать приложения **java** с помощью старой версии openjdk-11 (конкретно - openjdk-11.0.2). \\
 +Но при этом, я не могу просто удалить из системы дефолтный **openjdk**, поскольку от него зависят многие пакеты. \\
 +Поэтому я установлю в системе ту версию что мне нужно параллельно с текущей. \\
 +Скачиваем:
 +  wget https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz
 Распаковываем: Распаковываем:
-  sudo tar -xvf ~/Downloads/openjdk-11.0.2_linux-x64_bin.tar.gz -C /usr/lib/jvm/ +  sudo tar -xvf ./openjdk-11.0.2_linux-x64_bin.tar.gz -C /usr/lib/jvm/ 
-Смотрим что у нас сейчас запускается под видом java:+Смотрим что у нас сейчас запускается под видом **java** (интересует текущий приоритет):
   update-alternatives --query java   update-alternatives --query java
 Прописываем альтернативный бинарник с приоритетом больше, чем текущий (последние цифры в команде): Прописываем альтернативный бинарник с приоритетом больше, чем текущий (последние цифры в команде):
   sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-11.0.2/bin/java 1122   sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-11.0.2/bin/java 1122
 +И вот таким скриптом я заменяю все дефолтные бинарники java:
 +<code>#!/bin/bash
  
 +new_path='/usr/lib/jvm/jdk-11.0.2/bin/'
 +bin_path='/usr/bin'
 +priority='1122'
  
 +for binary in `find /usr/lib/jvm/jdk-11.0.2/bin/ -type f`
 +do
 +  sudo update-alternatives --install $bin_path/`basename $binary` `basename $binary` $binary $priority
 +done
 +</code>
 +Также нужно, чтобы переменная **$JAVA_HOME** указывала на нужную **JAVA**. Обычно она указывает на **/usr/lib/jvm/default-java**, которая является симлинком до нужной директории. Делаем:\\
 +  cd /usr/lib/jvm/
 +  sudo rm -f default-java
 +  sudo ln -s jdk-11.0.2 default-java
  • linux_faq/multiple_java_versions.txt
  • Last modified: 2020/12/09 16:00
  • by admin