在linux下安装多个jdk版本

本文介绍如何在Linux Mint 17上安装并管理Sun JDK 1.6、Sun JDK 1.7及OpenJDK 7等多个版本的JDK。通过使用update-alternatives工具,可以轻松地在不同版本间进行切换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在linux下安装多个jdk版本

NOV 21ST, 2014 | COMMENTS

在4.4(Kitkat)之前一直用的SunJDK1.6版本来编译,到4.4的时候开始用SunJDK1.7版本编译,从Android L开始到现在的5.0谷歌开始使用OpenJDK来编译。 所以在一台电脑上要进行源码编译需要安装多个版本的JDK。

我现在用的系统是LinuxMint17,基于UBUNTU 14.04。

现在需要用到如上几个版本的JDK,所以都进行了安装,在需要的时候进行切换即可。

1.SunJDK1.6

可以在此下载jdk-6u43-linux-x64.bin,安装方法可看这个ubuntu配置 Java SE 1.6

2.SunJDK1.7

可以到SunJDK官网下载JDK7,下载之后执行如下命令解压:

tar -zvfx jdk-7u72-linux-x64.tar.gz
sudo mv -rf jdk1.7.0_72/ /opt/jdk1.7.0_72

3.OpenJDK7

可以直接在终端执行如下命令安装

sudo apt-get install openjdk-7-jdk

安装完以上三个jdk版本之后,重启一下电脑,然后进行下面的操作:

1).先检查java安装情况
sudo update-alternatives --display java
sudo update-alternatives --display javac

显示结果如下(下面是我已经配置好的)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
apar@G470 ~ $ sudo update-alternatives --display java
java - 手动模式
链接目前指向 /opt/jdk1.7.0_72/bin/java
/opt/jdk1.6.0_43/bin/java - 优先级 300
/opt/jdk1.7.0_72/bin/java - 优先级 400
/usr/lib/jvm/java-7-openjdk-amd64/bin/java - 优先级 500
目前“最佳”的版本为 /usr/lib/jvm/java-7-openjdk-amd64/bin/java。
apar@G470 ~ $ sudo update-alternatives --display javac
javac - 手动模式
链接目前指向 /opt/jdk1.7.0_72/bin/javac
/opt/jdk1.6.0_43/bin/javac - 优先级 300
/opt/jdk1.7.0_72/bin/javac - 优先级 400
/usr/lib/jvm/java-7-openjdk-amd64/bin/javac - 优先级 500
目前“最佳”的版本为 /usr/lib/jvm/java-7-openjdk-amd64/bin/javac。
apar@G470 ~ $
2).删除符号链接

执行类似如下命令删除已经存在的符号链接

sudo update-alternatives --remove java /opt/jdk1.6.0_43/bin/java
sudo update-alternatives --remove javac /opt/jdk1.6.0_43/bin/javac

确认这些符号链接(symlinks)是否都删除了

java -version
javac -version
3).重新配置java链接

执行类似如下命令

sudo update-alternatives --install /usr/bin/java java /opt/jdk1.6.0_43/bin/java 300
sudo update-alternatives --install /usr/bin/java java /opt/jdk1.7.0_72/bin/java 400
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-7-openjdk-amd64/bin/java 500

sudo update-alternatives --install /usr/bin/javac javac /opt/jdk1.6.0_43/bin/javac 300
sudo update-alternatives --install /usr/bin/javac javac /opt/jdk1.7.0_72/bin/javac 400
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-7-openjdk-amd64/bin/javac 500
4).在需要的时候进行手动切换即可
sudo update-alternatives --config java
sudo update-alternatives --config javac

显示结果如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
apar@G470 ~ $ sudo update-alternatives --config java
[sudo] password for apar:
有 3 个候选项可用于替换 java (提供 /usr/bin/java)
  选择       路径                                      优先级  状态
------------------------------------------------------------
  0            /usr/lib/jvm/java-7-openjdk-amd64/bin/java   500       自动模式
  1            /opt/jdk1.6.0_43/bin/java                    300       手动模式
* 2            /opt/jdk1.7.0_72/bin/java                    400       手动模式
  3            /usr/lib/jvm/java-7-openjdk-amd64/bin/java   500       手动模式

要维持当前值[*]请按回车键,或者键入选择的编号:

apar@G470 ~ $ sudo update-alternatives --config javac
有 3 个候选项可用于替换 javac (提供 /usr/bin/javac)
  选择       路径                                       优先级  状态
------------------------------------------------------------
  0            /usr/lib/jvm/java-7-openjdk-amd64/bin/javac   500       自动模式
  1            /opt/jdk1.6.0_43/bin/javac                    300       手动模式
* 2            /opt/jdk1.7.0_72/bin/javac                    400       手动模式
  3            /usr/lib/jvm/java-7-openjdk-amd64/bin/javac   500       手动模式

要维持当前值[*]请按回车键,或者键入选择的编号:

在需要的时候根据显示的结果进行选择切换即可,注意java跟javac要对应的切换!

### Linux系统中安装多个JDK版本的方法 在Linux系统中,可以同时安装并管理多个不同版本JDK。这通常通过调整环境变量`JAVA_HOME`和路径优先级来实现[^1]。 #### 方法一:利用APT包管理器(适用于Debian/Ubuntu系列) 对于基于Debian或Ubuntu的操作系统,可以通过APT软件包管理系统轻松安装不同的OpenJDK版本。例如: ```bash sudo apt update sudo apt install openjdk-8-jdk openjdk-11-jdk ``` 完成上述命令后,可使用`update-alternatives`工具切换默认使用的JDK版本。具体操作如下: ```bash sudo update-alternatives --config java ``` 该命令会显示当前可用的所有Java版本列表,并允许手动选择所需的默认版本。 #### 方法二:手动下载与配置 如果需要安装Oracle JDK或其他特定版本,则需采用手动方式。以下是基本流程: 1. 下载目标版本JDK压缩文件; 2. 将其解压至指定目录;比如 `/usr/lib/jvm/java-X-oracle` 中 (X代表相应的大版本号)[^2]。 3. 配置系统的PATH及JAVA_HOME参数,在`.bashrc`或者全局profile文件里加入类似下面的内容: ```bash export JAVA_HOME=/usr/lib/jvm/java-X-oracle export PATH=$JAVA_HOME/bin:$PATH source ~/.bashrc ``` 每次更换所用的具体JDK时只需修改对应的JAVA_HOME指向即可生效。 #### 注意事项 当存在多版共存情况时需要注意以下几点: - 不同项目可能依赖于特定大版本甚至小修订级别的JDK,因此务必确认各应用实际运行所需的确切设置; - 如果某些服务启动脚本硬编码了绝对路径而非读取环境变量定义的话可能会引发兼容性问题; - 应定期检查官方安全公告及时更新补丁以保障生产环境中所有组件的安全性. ### 示例代码展示如何动态改变java解释器版本(Shell Script) ```shell #!/bin/bash # 列举所有已知jre位置供用户挑选 select dir in /opt/*jdk*; do test -n "$dir" && break; echo "请选择有效选项"; done if [[ ! -z $dir ]];then export JAVA_HOME="$dir" export PATH=${JAVA_HOME}/bin:${PATH} fi echo 使用中的java版本为 $(java -version 2>&1 | head -n1) ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值