Utilizați anumite versiuni de JRE / JDK pentru anumite programe

Folosesc ArchLinux și un IDE numit PyCharm. Pe pagina de descărcare , recomandă utilizarea Java 6 în loc de OpenJDK. ArchLinux are un pachet OpenJDK (jdk7-openjdk) pe care l-am instalat, instalat și din ceea ce citisem în Arch Wiki pe Java , ar trebui să fie posibil să instalați Oracle Java 6 de-a lungul OpenJDK 7 prin intermediul unui pachet numit jdk6-compat și jre6-compat, care instalează aceste versiuni de Java în /opt/ în loc de locația normală.

Cu toate acestea, după instalarea jdk6-compat și jre6-compat, văd în continuare că rulez OpenJDK 7 când rulez următoarele:

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

… chiar și după ce am setat JAVA_HOME și am adăugat /opt/java6/bin la PATH în .

Cum pot obține PyCharm (sau alte aplicații) să utilizeze Oracle Java 6 în loc de OpenJDK?

Vă mulțumim și scuze dacă am postat într-un loc greșit.

Alte informații care ar putea fi utile:

  • Utilizarea Gnome 3 ca DE

Răspuns

Dacă vreau să folosesc o altă versiune din Java fac două lucruri:

  • Mai întâi, setați JAVA_HOME după caz pentru instalarea respectivă Java și exportați-l.
  • Apoi, actualizează-mi calea cu `PATH = $ {JAVA_HOME} / bin: $ {PATH}.

Datorită modului în care este PATH căutată, dacă adăugați la sfârșitul căii, noua versiune nu va fi folosită. Orice lucru adăugat la sfârșitul căii adaugă doar comenzi noi, nu înlocuiește comenzile existente. Înainte de variabila PATH, se va folosi comanda în noul director, de preferință față de altă comandă.

Comenzi precum java implică adesea o serie de legături simbolice înainte de a ajunge la program. Utilizarea ${JAVA_HOME}/bin ocolește orice indirecție și oferă o cale directă către diferitele comenzi legate de Java.

EDIT: Dacă doriți să rulați numai anumite programe cu o versiune diferită din Java puteți utiliza un wrapper ca acesta:

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

Puteți apela apoi wrapper cu o comandă de genul.

javawrapper /opt/java6 PyCharm 

De asemenea, puteți adăuga un alias în fișierul dvs. ~/.bashrc astfel

alias PyCharm="javawrapper /opt/java6 PyCharm" 

Comentarii

  • Ei bine, asta rezolvă jumătate din problemă; Adăugam la final, mai degrabă decât la începutul $PATH. Dar cum pot rula versiunea diferită de Java numai pentru anumite aplicații?
  • Am ' am actualizat răspunsul meu. Cu toate acestea, într-un caz ca al dvs., rareori am nevoie să păstrez programele folosind versiunea Java implicită.

Răspuns

ArchLinux păstrează diferitele JDK-uri în directorul / usr / lib / jvm, modificarea JDK implicită este o chestiune de modificare a legăturilor simbolice de acolo:

# 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 are un script special pentru asta:

# archlinux-java set java-10-openjdk 

și veți obține:

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

puteți utiliza și opțiunile „fix” și „status”:

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

Comentarii

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *