Verwenden Sie eine bestimmte Version von JRE / JDK für bestimmte Programme.

Ich verwende ArchLinux und eine IDE namens PyCharm. Auf der Download-Seite wird die Verwendung von Java 6 anstelle von OpenJDK empfohlen. ArchLinux hat ein OpenJDK-Paket (jdk7-openjdk), das ich installiert, installiert und von dem, was ich im Arch Wiki auf Java gelesen hatte sollte es möglich sein, Oracle Java 6 neben OpenJDK 7 über Pakete zu installieren, die jdk6-compat und jre6-compat installieren Diese Java-Versionen in /opt/ anstelle des normalen Speicherorts.

Nach der Installation von jdk6-compat und jre6-compat, ich sehe immer noch, dass ich OpenJDK 7 ausführe, wenn ich Folgendes ausführe:

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

… auch nach I. habe JAVA_HOME gesetzt und /opt/java6/bin zu meinem PATH in meinem Datei.

Wie kann ich PyCharm (oder andere Anwendungen) dazu bringen, Oracle Java 6 anstelle von OpenJDK zu verwenden?

Vielen Dank und Entschuldigung, wenn ich etwas gepostet habe am falschen Ort.

Andere Informationen, die hilfreich sein könnten:

  • Verwenden von Gnome 3 als DE

Antwort

Wenn ich eine andere Version verwenden möchte von Java Ich mache zwei Dinge:

  • Setzen Sie zuerst JAVA_HOME entsprechend dieser Installation von Java und exportieren Sie es.
  • Aktualisieren Sie dann meinen Pfad mit `PATH = $ {JAVA_HOME} / bin: $ {PATH}.

Aufgrund der Art und Weise, wie die PATH lautet gesucht, wenn Sie am Ende des Pfades hinzufügen, wird die neue Version nicht verwendet. Alles, was am Ende des Pfads hinzugefügt wird, fügt nur neue Befehle hinzu und ersetzt keine vorhandenen Befehle. Wenn Sie der Variablen PATH voranstellen, wird der Befehl im neuen Verzeichnis gegenüber anderen Befehlen bevorzugt.

Befehle wie java Verwenden Sie häufig eine Reihe symbolischer Links, bevor Sie zum Programm gelangen. Die Verwendung von ${JAVA_HOME}/bin umgeht alle Indirektionen und bietet einen direkten Pfad zu den verschiedenen Java-bezogenen Befehlen.

BEARBEITEN: Wenn Sie nur bestimmte Programme mit einer anderen Version ausführen möchten Unter Java können Sie einen Wrapper wie den folgenden verwenden:

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

Sie können den Wrapper dann mit einem Befehl wie aufrufen.

javawrapper /opt/java6 PyCharm 

Sie können Ihrer ~/.bashrc -Datei auch einen Alias hinzufügen,

alias PyCharm="javawrapper /opt/java6 PyCharm" 

Kommentare

  • Nun, das löst das halbe Problem. Ich habe eher an das Ende als an den Anfang von $PATH angehängt. Aber wie führe ich die unterschiedliche Java-Version nur für bestimmte Anwendungen aus?
  • Ich ' habe meine Antwort aktualisiert. In einem Fall wie Ihrem muss ich jedoch selten Programme mit der Standard-Java-Version beibehalten.

Antwort

ArchLinux speichert die verschiedenen JDKs im Verzeichnis / usr / lib / jvm. Wenn Sie das Standard-JDK ändern, müssen Sie die symbolischen Links dort ändern:

# 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 hat dafür ein spezielles Skript:

# archlinux-java set java-10-openjdk 

und Sie erhalten:

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

Sie können auch die Optionen „Fix“ und „Status“ verwenden:

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

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.