【发布时间】:2016-09-07 07:56:30
【问题描述】:
我使用的是 RHEL 6.8。 JDK为1.7.0_45的情况下,是否可以在Linux的JAVA_HOME中设置1.8服务器的JRE路径?我需要两个 java 版本和两个 JAVA_HOME。
提前致谢!
【问题讨论】:
我使用的是 RHEL 6.8。 JDK为1.7.0_45的情况下,是否可以在Linux的JAVA_HOME中设置1.8服务器的JRE路径?我需要两个 java 版本和两个 JAVA_HOME。
提前致谢!
【问题讨论】:
处理此类事情的典型方法是使用alternatives。
意思:同一个系统有多个JRE/JDK绝对没问题;您只需要管理它们; 替代品对此有所帮助。
对于 Redhat,请查看他们的 documentation。
【讨论】:
您可以拥有 2 个版本,但一次只能使用一个或创建 2 个具有不同配置文件的系统用户,如下所述:
/usr/local/java/ - jdk1.8.0_60 - jre1.7.0_60
1) vim ~/.profile or vim ~/.bash_profile
2) Add below lines at end. Please check your jdk/jre path and change it accordingly
export JAVA_HOME=/usr/local/java/jre1.7.0_60
export PATH=$JAVA_HOME/bin:$PATH
3) exit vim editor
4) echo $JAVA_HOME
您将需要退出系统并重新登录。
如果您想将其切换到 jdk1.8.0_60,请编辑相同的文件 ~/.profile 或 ~/.bash_profile 并再次按照上述步骤操作。
【讨论】:
你不能在同一个 Linux 环境中真正有两个 JAVA_HOME 环境变量(环境变量基本上是键值条目,因此你不能必须具有相同键 JAVA_HOME 的条目。
我建议我在这里写的解决方案: https://stackoverflow.com/a/50766853/6661361
简而言之:
安装你所有的java替代品:
sudo update-alternatives --install /usr/bin/java java /home/aqeel/development/jdk/jdk1.6.0_35/bin/java 1`
将以下 sn-p 添加到您的 ~/.bashrc(或其他 bash 配置文件,具体取决于您要使用的范围):
export JAVA_HOME=$(update-alternatives --query java | grep Value: | awk -F'Value: ' '{print $2}' | awk -F'/bin/java' '{print $1}')
使用以下命令选择您的 java 版本:
sudo update-alternatives --config java
您的 JAVA_HOME 应该会自动更改(只需记住在更改 java 版本后打开一个新的命令终端,或者创建一个脚本手动执行)。
可选:如果您必须不断更改 java 版本,您可能需要考虑为您的添加一个别名~ ./bash_aliases:
alias change-java="sudo update-alternatives --config java"
(您可能需要创建文件并取消注释 ~/.bashrc 中与此相关的部分)。
【讨论】: