Pro určité programy použijte určitou verzi JRE / JDK

Používám ArchLinux a IDE s názvem PyCharm. Na své stránce stahování doporučuje použít místo OpenJDK prostředí Java 6. ArchLinux má balíček OpenJDK (jdk7-openjdk), který jsem nainstaloval, nainstaloval az toho, co jsem četl v Arch Wiki v Javě , mělo by být možné instalovat Oracle Java 6 po straně OpenJDK 7 přes balíčky s názvem jdk6-compat a jre6-compat, které instalují tyto verze Javy v /opt/ namísto běžného umístění.

Po instalaci jdk6-compat a jre6-compat, stále vidím, že používám OpenJDK 7, když spustím následující:

% 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) 

… i poté, co jsem nastavili JAVA_HOME a přidali /opt/java6/bin do mého PATH do mého .zshrc soubor.

Jak mohu dosáhnout, aby PyCharm (nebo jiné aplikace) používaly Oracle Java 6 místo OpenJDK?

Děkuji a omlouvám se, pokud jsem zveřejnil příspěvek na špatném místě.

Další užitečné informace:

  • Použití Gnome 3 jako DE

Odpověď

Pokud chci použít jinou verzi Java dělám dvě věci:

  • Nejprve nastavte JAVA_HOME podle potřeby pro tuto instalaci Javy a exportujte ji.
  • Poté aktualizujte mou cestu pomocí `PATH = $ {JAVA_HOME} / bin: $ {PATH}.

Kvůli způsobu, jakým je PATH prohledáno, pokud přidáte na konec cesty, nová verze nebude použita. Cokoli přidané na konec cesty přidává pouze nové příkazy, nenahrazuje stávající příkazy. Příprava na proměnnou PATH použije v novém adresáři přednost před jiným příkazem.

Příkazy jako java často zahrnují řadu symbolických odkazů, než se dostanete do programu. Použitím ${JAVA_HOME}/bin obejdete všechny indirekce a získáte přímou cestu k různým příkazům souvisejícím s Java.

EDIT: Pokud chcete spouštět pouze určité programy s jinou verzí Java můžete použít obálku takto:

#!/bin/bash # javawrapper - replace Java for a command. export JAVA_HOME=$1; shift PATH=${JAVA_HOME}/bin:$PATH $* 

Obálku pak můžete zavolat pomocí příkazu jako.

javawrapper /opt/java6 PyCharm 

Do svého ~/.bashrc můžete také přidat alias, jako je tento

alias PyCharm="javawrapper /opt/java6 PyCharm" 

Komentáře

  • No, to řeší polovinu problému; Připojoval jsem se na konec, nikoli na začátek $PATH. Jak ale můžu spustit jinou verzi Javy pouze pro určité aplikace?
  • Aktualizoval jsem svou odpověď '. V případě, jako je ten váš, však jen zřídka potřebuji udržovat programy používající výchozí verzi Java.

Odpovědět

ArchLinux udržuje různé JDK v adresáři / usr / lib / jvm, změna výchozího JDK je věcí úpravy symbolických odkazů:

# 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 má k tomu speciální skript:

# archlinux-java set java-10-openjdk 

a získáte:

# 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) 

můžete také použít možnosti „opravit“ a „stav“:

# archlinux-java fix # archlinux-java status Available Java environments: java-10-openjdk (default) java-8-openjdk java-9-openjdk 

Komentáře

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *