Jeg bruker ArchLinux, og en IDE som heter PyCharm. På sin nedlastingsside anbefaler den å bruke Java 6 i stedet for OpenJDK. ArchLinux har en OpenJDK-pakke (jdk7-openjdk
) som jeg har installert, installert og fra det jeg hadde lest i Arch Wiki på Java , bør det være mulig å installere Oracle Java 6 langs OpenJDK 7 via en pakke kalt jdk6-compat
og jre6-compat
disse versjonene av Java i /opt/
i stedet for den normale plasseringen.
Imidlertid, etter å ha installert jdk6-compat
og jre6-compat
, jeg ser fortsatt at jeg kjører OpenJDK 7 når jeg kjører følgende:
% 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)
… selv etter at jeg har satt JAVA_HOME
og lagt til /opt/java6/bin
til PATH
i min .zshrc
-fil.
Hvordan kan jeg få PyCharm (eller andre applikasjoner) til å bruke Oracle Java 6 i stedet for OpenJDK?
Takk og beklager hvis jeg har lagt ut på feil sted.
Annen informasjon som kan være nyttig:
- Bruker Gnome 3 som DE
Svar
Hvis jeg vil bruke en annen versjon av Java gjør jeg to ting:
- Sett først
JAVA_HOME
etter behov for den installasjonen av Java og eksporter den. - Oppdater deretter banen min med `PATH = $ {JAVA_HOME} / bin: $ {PATH}.
På grunn av måten PATH
er søkte, hvis du legger til i enden av banen, vil den nye versjonen ikke brukes. Alt som legges til på slutten av banen, legger bare til nye kommandoer, det erstatter ikke eksisterende kommandoer. Forhåndsbetaling til PATH
-variabelen bruker kommandoen i den nye katalogen i stedet for en annen kommando.
Kommandoer som java
involverer ofte en rekke symbolske lenker før du kommer til programmet. Å bruke ${JAVA_HOME}/bin
omgår eventuelle indireksjoner, og gir en direkte vei til de forskjellige Java-relaterte kommandoene.
EDIT: Hvis du bare vil kjøre visse programmer med en annen versjon på Java kan du bruke en innpakning som denne:
#!/bin/bash # javawrapper - replace Java for a command. export JAVA_HOME=$1; shift PATH=${JAVA_HOME}/bin:$PATH $*
Du kan da ringe innpakningen med en kommando som.
javawrapper /opt/java6 PyCharm
Du kan også legge til et alias i ~/.bashrc
-filen slik
alias PyCharm="javawrapper /opt/java6 PyCharm"
Kommentarer
Svar
ArchLinux beholder de forskjellige JDK-ene i katalogen / usr / lib / jvm. Endring av standard JDK er et spørsmål om å endre de symbolske koblingene der:
# 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
Arch har et spesielt skript for det:
# archlinux-java set java-10-openjdk
og du får:
# 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)
du kan også bruke alternativene «fikse» og «status»:
# archlinux-java fix # archlinux-java status Available Java environments: java-10-openjdk (default) java-8-openjdk java-9-openjdk
Kommentarer
- I vet du ikke ' hvorfor det ' ikke aksepteres svaret?
- se også blog.debenny.de/2018/07/21/install-jdk-on-arch-linux-manually
$PATH
. Men hvordan kjører jeg bare den forskjellige versjonen av Java for visse applikasjoner?