Ik gebruik ArchLinux en een IDE genaamd PyCharm. Op zijn downloadpagina raadt het aan om Java 6 te gebruiken in plaats van OpenJDK. ArchLinux heeft een OpenJDK-pakket (jdk7-openjdk
) dat ik heb geïnstalleerd, geïnstalleerd en van wat ik had gelezen in de Arch Wiki op Java , zou het mogelijk moeten zijn om Oracle Java 6 naast OpenJDK 7 te installeren via een pakket genaamd jdk6-compat
en jre6-compat
, die deze versies van Java in /opt/
in plaats van de normale locatie.
Na installatie van jdk6-compat
en jre6-compat
, ik zie nog steeds dat ik OpenJDK 7 draai als ik het volgende draai:
% 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)
… zelfs nadat ik heb JAVA_HOME
ingesteld en /opt/java6/bin
toegevoegd aan mijn PATH
in mijn .zshrc
bestand.
Hoe kan ik PyCharm (of andere applicaties) ertoe brengen Oracle Java 6 te gebruiken in plaats van OpenJDK?
Bedankt, en excuses als ik heb gepost op de verkeerde plaats.
Andere informatie die nuttig kan zijn:
- Gnome 3 als DE gebruiken
Antwoord
Als ik een andere versie wil gebruiken van Java doe ik twee dingen:
- Stel eerst
JAVA_HOME
in zoals geschikt voor die installatie van Java en exporteer het. - Werk vervolgens mijn pad bij met `PATH = $ {JAVA_HOME} / bin: $ {PATH}.
Vanwege de manier waarop de PATH
is gezocht, als u aan het einde van het pad toevoegt, wordt de nieuwe versie niet gebruikt. Alles wat aan het einde van het pad wordt toegevoegd, voegt alleen nieuwe commandos toe, het vervangt geen bestaande commandos. Voorbereiden op de PATH
variabele zal het commando in de nieuwe map gebruiken in plaats van andere commandos.
Commandos zoals java
bevatten vaak een aantal symbolische links voordat u bij het programma komt. Het gebruik van ${JAVA_HOME}/bin
omzeilt alle indirecte informatie en biedt een direct pad naar de verschillende Java-gerelateerde commandos.
BEWERKEN: Als je alleen bepaalde programmas met een andere versie wilt draaien van Java zou je een wrapper als volgt kunnen gebruiken:
#!/bin/bash # javawrapper - replace Java for a command. export JAVA_HOME=$1; shift PATH=${JAVA_HOME}/bin:$PATH $*
Je kunt dan de wrapper aanroepen met een commando zoals.
javawrapper /opt/java6 PyCharm
U kunt ook op deze manier een alias toevoegen aan uw ~/.bashrc
-bestand
alias PyCharm="javawrapper /opt/java6 PyCharm"
Reacties
Answer
ArchLinux bewaart de verschillende JDKs in de / usr / lib / jvm directory, het veranderen van de standaard JDK is een kwestie van de symbolische links daar aanpassen:
# 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 heeft daarvoor een speciaal script:
# archlinux-java set java-10-openjdk
en je krijgt:
# 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)
je kunt ook de “fix” en “status” opties gebruiken:
# archlinux-java fix # archlinux-java status Available Java environments: java-10-openjdk (default) java-8-openjdk java-9-openjdk
Reacties
- I niet ' weten waarom het ' s geen geaccepteerd antwoord?
- zie ook blog.debenny.de/2018/07/21/install-jdk-on-arch-linux-manually
$PATH
. Maar hoe voer ik alleen de verschillende versies van Java uit voor bepaalde toepassingen?