Запуск старых java-апплетов в Ubuntu

      0 Comments

При работе со старыми IPMI-консолями серверов, периодически возникает проблема с невозможностью запуска старых версий джава-апплетов на последней версии openjdk. Самый простой путь решения проблемы — установить дополнительно старую версию java.

1. Установим Java

# основное ставим из официальных репозиториев
apt install -y icedtea-8-plugin icedtea-netx icedtea-plugin openjdk-8-jdk
# старенькую джаву скачиваем по ссылке:
# (требуется регистрация)
# И распаковываем архив
tar xvzf jdk-7u80-linux-x64.tar.gz
# переносим к остальным джава-машинам
mv jdk1.7.0_80 /usr/lib/jvm/
# и добавляем старую версию java в альтернативы
update-alternatives --install /usr/bin/javaws javaws /usr/lib/jvm/jdk1.7.0_80/bin/javaws 1
update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.7.0_80/bin/java 1

2. Немного автоматизируем

Чтобы постоянно не менять версии джава вручную через команду: sudo update-alternatives —config javaws можем сделать пару скриптов:

cat set_java7.sh
#!/usr/bin/env bash
 
sudo update-alternatives --set java /usr/lib/jvm/jdk1.7.0_80/bin/java
sudo update-alternatives --set javaws /usr/lib/jvm/jdk1.7.0_80/bin/javaws
 
cat set_java_latest.sh
#!/usr/bin/env bash
 
sudo update-alternatives --set java /usr/lib/jvm/java-11-openjdk-amd64/bin/java
sudo update-alternatives --set javaws /usr/lib/icedtea-web/bin/javaws
 
chmod +x set_java_latest.sh
chmod +x set_java7.sh

Чтобы при смене версии джавы не вводить пароль администратора можно через команду visudo или просто в /etc/sudoers добавить строку:

YOUR_USERNAME ALL = NOPASSWD: /usr/bin/update-alternatives

Теперь при запуску скриптов система не будет просить пароль

3. Добавляем в исключения алерты по безопасности для 7й джавы

При открытии ipmi-консоли через http-соединение нередко 7я джава ругается на не секьюрное соединение и выдает ошибку типа: «Your security settings have blocked an application signed with an expired or not-yet-valid cert». Для быстрого добавления в исключения таких алертов можем добавить функцию в конец .bashrc

#Java security
function _jsec() {
echo "http://$1" >> ~/.java/deployment/security/exception.sites
echo "https://$1" >> ~/.java/deployment/security/exception.sites
echo "host $1 added"
}
 
# перезапускаем сеанс BASH
source .bashrc
# и добавляем в исключения нужный сервер
_jsec 10.10.10.10

В случаях когда джава ругается на самоподписанные сертификаты можно изменить параметры безопасности на настройках аплета, для этого в консоли выполните команду:

javaws -viewer

[Голосов: 0 Средний бал: 0]