Brug en bestemt version af JRE / JDK til visse programmer
ArchLinux beholder de forskellige JDK'er i mappen /usr/lib/jvm, ændring af standard JDK er et spørgsmål om at ændre de symbolske links 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 specielt script til 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å bruge mulighederne 'fix' og 'status':
# archlinux-java fix
# archlinux-java status
Available Java environments:
java-10-openjdk (default)
java-8-openjdk
java-9-openjdk
Hvis jeg vil bruge en anden version af Java, gør jeg to ting:
- Indstil først
JAVA_HOME
som passende for den pågældende installation af Java og eksporter den. - Opdater derefter min sti med `PATH=${JAVA_HOME}/bin:${PATH}.
På grund af måden PATH
på er søgt, hvis du tilføjer til slutningen af stien, vil den nye version ikke blive brugt. Alt tilføjet til slutningen af stien tilføjer kun nye kommandoer, det erstatter ikke eksisterende kommandoer. Forud for PATH
variabel vil bruge kommandoen i den nye mappe frem for andre kommandoer.
Kommandoer som java
involverer ofte en række symbolske links, før du kommer til programmet. Bruger ${JAVA_HOME}/bin
omgår enhver indirektion og giver en direkte sti til de forskellige Java-relaterede kommandoer.
EDIT:Hvis du kun vil køre visse programmer med en anden version af Java, kan du bruge en wrapper som denne:
#!/bin/bash
# javawrapper - replace Java for a command.
export JAVA_HOME=$1; shift
PATH=${JAVA_HOME}/bin:$PATH
$*
Du kan derefter kalde indpakningen med en kommando som.
javawrapper /opt/java6 PyCharm
Du kan også tilføje et alias til din ~/.bashrc
fil som denne
alias PyCharm='javawrapper /opt/java6 PyCharm'