Eu uso o ArchLinux e um IDE chamado PyCharm. Em sua página de download , ele recomenda o uso de Java 6 em vez de OpenJDK. O ArchLinux tem um pacote OpenJDK (jdk7-openjdk
) que instalei, instalei e pelo que li no Arch Wiki em Java , deve ser possível instalar o Oracle Java 6 junto com o OpenJDK 7 por meio de pacotes chamados jdk6-compat
e jre6-compat
, que instalam essas versões do Java em /opt/
em vez do local normal.
No entanto, após instalar jdk6-compat
e jre6-compat
, ainda vejo que estou executando o OpenJDK 7 quando executo o seguinte:
% java -version java version "1.7.0_09" OpenJDK Runtime Environment (IcedTea7 2.3.3) (ArchLinux build 7.u9_2.3.3-1-x86_64) OpenJDK 64-Bit Server VM (build 23.2-b09, mixed mode)
… mesmo depois de eu defini JAVA_HOME
e adicionou /opt/java6/bin
ao meu PATH
no meu .zshrc
arquivo.
Como posso fazer com que o PyCharm (ou outros aplicativos) use o Oracle Java 6 em vez do OpenJDK?
Obrigado e desculpas se postei no lugar errado.
Outras informações que podem ser úteis:
- Usando o Gnome 3 como DE
Resposta
Se eu quiser usar uma versão diferente do Java, faço duas coisas:
- Primeiro, defina
JAVA_HOME
como apropriado para a instalação do Java e exporte-o. - Em seguida, atualize meu caminho com `PATH = $ {JAVA_HOME} / bin: $ {PATH}.
Devido à forma como PATH
é pesquisado, se você adicionar ao final do caminho, a nova versão não será usada. Qualquer coisa adicionada ao final do caminho apenas adiciona novos comandos, não substitui os comandos existentes. Preceder à variável PATH
usará o comando no novo diretório em preferência a outro comando.
Comandos como java
muitas vezes envolvem vários links simbólicos antes de você chegar ao programa. O uso de ${JAVA_HOME}/bin
ignora quaisquer indireções e fornece um caminho direto para os vários comandos relacionados ao Java.
EDITAR: Se você deseja executar apenas alguns programas com uma versão diferente de Java, você poderia usar um wrapper como este:
#!/bin/bash # javawrapper - replace Java for a command. export JAVA_HOME=$1; shift PATH=${JAVA_HOME}/bin:$PATH $*
Você pode então chamar o wrapper com um comando como.
javawrapper /opt/java6 PyCharm
Você também pode adicionar um alias ao seu ~/.bashrc
arquivo como este
alias PyCharm="javawrapper /opt/java6 PyCharm"
Comentários
Resposta
ArchLinux mantém os diferentes JDKs no diretório / usr / lib / jvm, alterar o JDK padrão é uma questão de modificar os links simbólicos lá:
# ls -al /usr/lib/jvm lrwxrwxrwx 1 root root 14 May 31 19:58 default -> java-8-openjdk lrwxrwxrwx 1 root root 18 May 31 19:58 default-runtime -> java-8-openjdk/jre drwxr-xr-x 7 root root 4096 May 27 21:45 java-10-openjdk drwxr-xr-x 6 root root 4096 May 31 14:35 java-8-openjdk drwxr-xr-x 7 root root 4096 May 31 19:56 java-9-openjdk
O Arch possui um script especial para isso:
# archlinux-java set java-10-openjdk
e você obtém:
# java -version openjdk version "10.0.1" 2018-04-17 OpenJDK Runtime Environment (build 10.0.1+10) OpenJDK 64-Bit Server VM (build 10.0.1+10, mixed mode)
você também pode usar as opções “corrigir” e “status”:
# archlinux-java fix # archlinux-java status Available Java environments: java-10-openjdk (default) java-8-openjdk java-9-openjdk
Comentários
- I não ' não sei por que ' não aceitou uma resposta?
- veja também blog.debenny.de/2018/07/21/install-jdk-on-arch-linux-manually
$PATH
. Mas como executo apenas versões diferentes do Java para determinados aplicativos?