一步步教你在 Ubuntu 上安装 Java (详细指南)
Java 是一种广泛使用的编程语言和计算平台,以其“一次编写,到处运行”的特性而闻名。无论你是开发桌面应用程序、Web 应用程序、Android 应用程序,还是进行大数据处理,Java 通常都是必不可少的工具。本指南将详细介绍在 Ubuntu 系统上安装 Java 的各种方法,并提供深入的解释和故障排除技巧,确保你能够顺利完成安装并配置好 Java 环境。
1. 了解 Java 版本和发行版
在开始安装之前,了解不同 Java 版本和发行版的区别非常重要。这将帮助你选择最适合你需求的版本。
1.1. Java 版本
- Java SE (Standard Edition): 标准版,包含用于开发和部署桌面、服务器和嵌入式环境的 Java 应用程序的核心 API。
- Java EE (Enterprise Edition): 企业版,构建在 Java SE 之上,提供了一组用于开发和部署企业级应用程序的 API 和运行时环境,例如 Web 服务、分布式应用程序等。
- Java ME (Micro Edition): 微型版,用于开发在移动设备和嵌入式系统上运行的应用程序。
对于大多数开发人员来说,Java SE (通常简称为 Java) 就足够了。
1.2. Java 发行版
Java 有多个发行版可供选择,主要分为两大类:
- Oracle JDK: Oracle 官方发布的 Java 开发工具包。它包含 Java 运行时环境 (JRE) 和开发工具 (如编译器
javac
、调试器jdb
等)。Oracle JDK 在过去需要商业许可才能用于生产环境,但现在情况有所改变(稍后详细说明)。 - OpenJDK: Java SE 平台的开源实现。它由 Oracle 和 Java 社区共同维护,功能上与 Oracle JDK 基本相同。OpenJDK 是完全免费和开源的,可以自由用于任何用途。
Oracle JDK 和 OpenJDK 的许可差异
- Oracle JDK 17 及更高版本: 采用 “Oracle No-Fee Terms and Conditions” (NFTC) 许可。这意味着你可以免费将其用于个人、开发、测试、原型设计和演示,以及某些内部业务操作。但是,如果你需要 Oracle 的商业支持或长期支持 (LTS) 版本,则可能需要购买商业许可。
- Oracle JDK 8, 11 (LTS版本): 这些版本依然提供更新, 个人使用依然免费.
- OpenJDK: 采用 GPLv2 with Classpath Exception 许可。这意味着你可以自由地将其用于任何目的,包括商业用途,而无需支付任何费用。
选择哪个发行版?
对于大多数用户来说,OpenJDK 是一个很好的选择,因为它完全免费、开源,并且功能与 Oracle JDK 相当。如果你需要 Oracle 的商业支持或长期支持,或者你正在使用一些依赖于 Oracle JDK 特定功能的旧版软件,那么你可以选择 Oracle JDK。
2. 安装前的准备工作
在开始安装之前,确保你的 Ubuntu 系统满足以下要求:
- Ubuntu 版本: 本指南适用于大多数现代 Ubuntu 版本,包括 22.04 LTS、20.04 LTS 和 18.04 LTS。
- 用户权限: 你需要具有
sudo
权限的用户帐户来执行安装命令。 - 互联网连接: 你需要一个稳定的互联网连接来下载 Java 安装包。
-
更新系统: 强烈建议在安装任何新软件之前更新你的系统:
bash
sudo apt update
sudo apt upgrade
3. 安装 OpenJDK
OpenJDK 是 Ubuntu 的默认 Java 开发工具包,安装非常简单。
3.1. 使用 apt 安装 OpenJDK (推荐)
这是在 Ubuntu 上安装 OpenJDK 最简单、最推荐的方法。
-
更新软件包列表:
bash
sudo apt update -
安装 OpenJDK:
-
安装最新版本的 OpenJDK (通常是最好的选择):
bash
sudo apt install default-jdk这将安装 Ubuntu 软件仓库中可用的最新版本的 OpenJDK。
-
安装特定版本的 OpenJDK:
如果你需要特定版本的 OpenJDK (例如 OpenJDK 11),可以使用以下命令:
bash
sudo apt install openjdk-11-jdk
同样,安装JDK17:
bash
sudo apt install openjdk-17-jdk将
11
替换为你想要安装的版本号。
-
-
验证安装:
安装完成后,验证 Java 是否已正确安装:
bash
java -version你应该会看到类似以下的输出 (版本号可能有所不同):
openjdk version "11.0.16" 2022-07-19
OpenJDK Runtime Environment (build 11.0.16+8-post-Ubuntu-0ubuntu120.04)
OpenJDK 64-Bit Server VM (build 11.0.16+8-post-Ubuntu-0ubuntu120.04, mixed mode, sharing)如果你看到类似的信息,说明 OpenJDK 已成功安装。
3.2. 使用 apt 安装 OpenJDK JRE
如果你只需要运行 Java 应用程序而不需要开发它们,你可以只安装 Java 运行时环境 (JRE):
-
更新软件包列表:
bash
sudo apt update -
安装 OpenJDK JRE:
-
安装最新版本的 OpenJDK JRE:
bash
sudo apt install default-jre -
安装特定版本的 OpenJDK JRE:
bash
sudo apt install openjdk-11-jre
同样,安装JRE17:
bash
sudo apt install openjdk-17-jre将
11
替换为你想要安装的版本号。
-
-
验证安装:
bash
java -version
4. 安装 Oracle JDK
如果你需要 Oracle JDK,你可以从 Oracle 官网下载安装包或使用第三方 PPA。
4.1. 从 Oracle 官网下载安装 (手动安装)
-
访问 Oracle JDK 下载页面:
打开浏览器并访问 Oracle JDK 下载页面:https://www.oracle.com/java/technologies/downloads/
-
选择 Java 版本:
选择你想要下载的 Java 版本 (例如 Java SE 17)。
-
下载 .deb 安装包:
在 “Linux x64 Debian Package” 下方,找到
.deb
文件并下载。 -
安装 .deb 包:
打开终端,导航到你下载
.deb
文件的目录,然后运行以下命令 (将文件名替换为你下载的实际文件名):bash
sudo dpkg -i jdk-17_linux-x64_bin.deb
如果提示缺少依赖, 运行:
bash
sudo apt-get install -f -
验证安装:
bash
java -version
4.2 使用 update-alternatives配置java (手动安装需要)
如果通过下载deb包手动安装,可能需要配置update-alternatives
。
- 配置
java
:
bash
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-17.0.4/bin/java 1
替换 /usr/lib/jvm/jdk-17.0.4
为你的 JDK 实际安装路径。
- 配置
javac
(如果需要):
bash
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk-17.0.4/bin/javac 1
同样,替换路径.
3. 选择默认的 Java 版本:
```bash
sudo update-alternatives --config java
```
如果有多个 Java 版本,这将允许你选择要使用的版本。按照提示选择 Oracle JDK。
-
选择默认的
javac
版本 (如果需要):bash
sudo update-alternatives --config javac
选择需要的版本.
4.3 使用WebUpd8 PPA安装Oracle Java (不推荐, 可能无法使用)
注意: WebUpd8 PPA 已经不再维护,因此这种方法可能不再有效。仅供参考。
-
添加 PPA 仓库(不推荐, 可能无法使用):
bash
sudo add-apt-repository ppa:webupd8team/java -
更新软件包列表:
bash
sudo apt update -
安装 Oracle Java:
bash
sudo apt install oracle-java17-installer
替换17
为你想要的版本. -
接受许可协议
在安装过程中,按照提示接受Oracle的许可协议. -
验证安装:
bash
java -version5. 配置环境变量
虽然 Java 安装后通常可以立即使用,但为了确保所有应用程序都能正确找到 Java,建议配置一些环境变量。
5.1. 设置 JAVA_HOME
JAVA_HOME
环境变量是一个重要的环境变量,许多 Java 应用程序和开发工具都会使用它来定位 Java 安装目录。
-
确定 Java 安装路径:
如果你使用
apt
安装 OpenJDK,Java 通常安装在/usr/lib/jvm/
目录下。你可以使用以下命令列出已安装的 Java 版本:bash
ls /usr/lib/jvm/找到你想要使用的 Java 版本的目录名 (例如
java-11-openjdk-amd64
或jdk-17.0.4
)。 -
编辑
/etc/environment
文件:使用文本编辑器 (如
nano
或gedit
) 以管理员权限打开/etc/environment
文件:bash
sudo nano /etc/environment -
添加 JAVA_HOME 变量:
在文件末尾添加以下行 (将路径替换为你实际的 Java 安装路径):
JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
或者,如果你的JDK路径是/usr/lib/jvm/jdk-17.0.4
:
JAVA_HOME="/usr/lib/jvm/jdk-17.0.4"
-
保存并关闭文件。
-
使更改生效:
为了使更改立即生效,你可以注销并重新登录,或者运行以下命令:
bash
source /etc/environment -
验证 JAVA_HOME:
bash
echo $JAVA_HOME你应该会看到你设置的 Java 安装路径。
5.2. 将 Java 添加到 PATH
PATH
环境变量告诉系统在哪里查找可执行文件。虽然通常不需要手动将 Java 添加到 PATH
,因为安装过程会自动处理,但如果遇到问题,你可以手动添加。
-
编辑
/etc/environment
文件 (如果需要):bash
sudo nano /etc/environment -
修改 PATH 变量:
找到
PATH
变量,并在其开头添加$JAVA_HOME/bin:
。例如:PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:$JAVA_HOME/bin"
-
保存并关闭文件。
-
使更改生效:
bash
source /etc/environment
5.3 设置只对当前用户的环境变量(可选)
如果你只想为你自己的用户帐户设置环境变量,而不是全局设置,你可以编辑你的 shell 配置文件 (例如 ~/.bashrc
或 ~/.profile
)。
-
编辑 shell 配置文件:
bash
nano ~/.bashrc -
添加环境变量:
在文件末尾添加以下行 (将路径替换为你实际的 Java 安装路径):
bash
export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
export PATH="$JAVA_HOME/bin:$PATH" -
保存并关闭文件。
-
使更改生效:
bash
source ~/.bashrc
6. 管理多个 Java 版本 (使用 update-alternatives)
如果你安装了多个 Java 版本,你可以使用 update-alternatives
命令轻松地在它们之间切换。
-
列出已安装的 Java 版本:
bash
sudo update-alternatives --config java这将显示一个列表,其中包含已安装的 Java 版本及其优先级。
-
选择默认 Java 版本:
输入与你想要使用的 Java 版本对应的编号,然后按 Enter 键。
-
对
javac
执行相同的操作 (如果需要):bash
sudo update-alternatives --config javac
7. 常见问题和故障排除
7.1 java -version
命令找不到
* 检查 PATH 环境变量: 确保 JAVA_HOME/bin
已添加到 PATH
环境变量中。
* 重新加载 shell 配置文件: 运行 source /etc/environment
或 source ~/.bashrc
(取决于你修改了哪个文件)。
* 重新登录: 注销并重新登录以确保所有更改都已生效。
* 使用 update-alternatives
: 确保已使用 update-alternatives
正确配置了 Java。
7.2 应用程序找不到 Java
* 设置 JAVA_HOME 环境变量: 确保已正确设置 JAVA_HOME
环境变量。
* 检查应用程序的文档: 一些应用程序可能有特定的配置要求。
* 使用绝对路径: 在启动应用程序时,尝试使用 Java 可执行文件的绝对路径 (例如 /usr/lib/jvm/java-11-openjdk-amd64/bin/java -jar myapp.jar
)。
7.3 安装过程中出现错误
* 仔细阅读错误消息: 错误消息通常会提供有关问题的线索。
* 检查互联网连接: 确保你可以访问互联网以下载软件包。
* 更新软件包列表: 运行 sudo apt update
。
* 修复损坏的软件包: 运行 sudo apt --fix-broken install
。
* 查看系统日志: 检查 /var/log/apt/
目录下的日志文件以获取更多详细信息。
7.4 如何卸载 Java
如果你需要卸载 Java,可以使用以下命令:
-
卸载 OpenJDK (使用 apt):
bash
sudo apt remove openjdk-11-jdk # 或 openjdk-11-jre将
11
替换为你想要卸载的版本号。
如果要完全删除(包括配置文件):
bash
sudo apt purge openjdk-11-jdk -
卸载 Oracle JDK (手动安装):
bash
sudo apt remove oracle-java17-installer # 例子, 基于包名卸载
或手动删除安装目录(通常是 /usr/lib/jvm 下的对应文件夹)。
8. 总结
本指南详细介绍了在 Ubuntu 上安装 Java 的各种方法,包括安装 OpenJDK 和 Oracle JDK,配置环境变量,以及管理多个 Java 版本。希望这些信息能够帮助你成功安装并配置 Java 环境,让你能够顺利地进行 Java 开发和运行 Java 应用程序。 如果你在安装过程中遇到任何问题,请仔细阅读错误消息,参考本指南中的故障排除部分,或在网上搜索相关信息。