Como configurar múltiplas versões do Java no linux

0

Eu tenho o Java 1.6 instalado na minha caixa Linux e todos os usuários e programas o usaram. Agora, preciso instalar um programa que usa a versão 1.7. Eu quero instalar esta versão para que todos os outros continuem a usar o 1.6, exceto o novo programa. O que eu estou pensando é instalar o novo Java e manter $ JAVA_HOME para apontar para o antigo Java 1.6. Para esse processo específico, executado por um usuário separado, desejo definir $ JAVA_HOME para apontar para o java 1.7

Isso vai funcionar? Ele não substituirá o $ JAVA_HOME original? É suficiente $ JAVA_HOME para apontar para o novo java para que tudo funcione?

Nota: Eu não quero que o programa seja executado sob Java 1.7, o programa chama scripts que devem ser executados sob 1.7. Eu não tenho permissão para modificar o programa, nem esses scripts.

    
por Alex 30.06.2016 / 23:17

1 resposta

2

Você precisa se preocupar com mais do que apenas $ JAVA_HOME; você também precisa definir $ PATH se você for chamar os comandos sem um caminho absoluto. ou seja, java e não /opt/java/1.7/bin/java .

Agora, dependendo de como o script funciona ou de como você chama o java, você tem algumas opções.

Script Bash

Isso significa que você não precisa adicionar um usuário extra

#!/bin/bash

JAVA_HOME=/opt/java/1.7
PATH=/opt/java/1.7/bin:$PATH
...

~ / .bashrc

Se você quiser usar outro usuário colocando isso no seu .bashrc é uma opção. export é usado para que $ JAVA_HOME e $ PATH sejam transformados em variáveis de ambiente.

...
export JAVA_HOME=/opt/java/1.7
export PATH=/opt/java/1.7/bin:$PATH
...

eval

Você também pode definir essas variáveis de ambiente rapidamente para um único comando e seus sub-comandos

eval JAVA_HOME=/opt/java/1.7 PATH=/opt/java/1.7/bin:$PATH java ${ARGS}
    
por 30.06.2016 / 23:41