![对某些程序使用特定版本的 JRE / JDK](https://linux22.com/image/27550/%E5%AF%B9%E6%9F%90%E4%BA%9B%E7%A8%8B%E5%BA%8F%E4%BD%BF%E7%94%A8%E7%89%B9%E5%AE%9A%E7%89%88%E6%9C%AC%E7%9A%84%20JRE%20%2F%20JDK.png)
我使用 ArchLinux 和一个名为 PyCharm 的 IDE。在它的下载页面,建议使用 Java 6 而不是 OpenJDK。 ArchLinux 有一个 OpenJDK 包 ( jdk7-openjdk
),我已经安装了,安装了,并且从我在Java 版 Arch Wiki,应该可以通过名为jdk6-compat
和的包将 Oracle Java 6 与 OpenJDK 7 一起安装jre6-compat
,这些包将这些版本的 Java 安装在/opt/
而不是正常位置。
但是,安装jdk6-compat
和后jre6-compat
,当我运行以下命令时,我仍然看到我正在运行 OpenJDK 7:
% 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)
...即使在我设置JAVA_HOME
并添加/opt/java6/bin
到我的文件PATH
中之后.zshrc
。
如何让 PyCharm(或其他应用程序)使用 Oracle Java 6 而不是 OpenJDK?
谢谢,如果我发错地方了,请原谅。
其他可能有帮助的信息:
- 使用 Gnome 3 作为 DE
答案1
ArchLinux 将不同的 JDK 保存在 /usr/lib/jvm 目录中,更改默认 JDK 就是修改那里的符号链接:
# 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 为此有一个特殊的脚本:
# archlinux-java set java-10-openjdk
你得到:
# 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)
您还可以使用“修复”和“状态”选项:
# archlinux-java fix
# archlinux-java status
Available Java environments:
java-10-openjdk (default)
java-8-openjdk
java-9-openjdk
答案2
如果我想使用不同版本的 Java,我会做两件事:
- 首先,
JAVA_HOME
根据 Java 安装进行适当设置并将其导出。 - 然后,用 `PATH=${JAVA_HOME}/bin:${PATH} 更新我的路径。
由于搜索方式的原因PATH
,如果您添加到路径末尾,则不会使用新版本。添加到路径末尾的任何内容都只会添加新命令,不会替换现有命令。添加到PATH
变量之前将优先使用新目录中的命令而不是其他命令。
在进入程序之前,命令java
通常会涉及许多符号链接。使用${JAVA_HOME}/bin
绕过任何间接,并提供各种 Java 相关命令的直接路径。
编辑:如果您只想使用不同版本的 Java 运行某些程序,您可以使用如下包装器:
#!/bin/bash
# javawrapper - replace Java for a command.
export JAVA_HOME=$1; shift
PATH=${JAVA_HOME}/bin:$PATH
$*
然后,您可以使用类似命令调用包装器。
javawrapper /opt/java6 PyCharm
~/.bashrc
您还可以像这样向文件添加别名
alias PyCharm='javawrapper /opt/java6 PyCharm'