首先下载Oracle JDK的.tar.gz文件并解压至/usr/lib/jvm,再通过update-alternatives注册Java命令,设置默认JDK版本,并在~/.bashrc中配置JAVA_HOME和PATH环境变量,最后验证java -version和JAVA_HOME确保安装正确。该方法适用于需要兼容特定商业软件或统一开发环境的场景。

在Ubuntu中安装Oracle JDK,核心在于从Oracle官网下载其
.tar.gz
JAVA_HOME
PATH
update-alternatives
要在Ubuntu系统上安装Oracle JDK并妥善配置环境,通常我会遵循以下步骤。虽然OpenJDK是Ubuntu的默认选择,但在某些特定场景,比如需要与某些商业软件兼容,或者仅仅是个人偏好,Oracle JDK依然是不可或缺的。
下载Oracle JDK压缩包: 访问Oracle官方网站的Java SE下载页面。你需要找到适合Linux x64架构的
.tar.gz
~/Downloads
创建安装目录: 为了保持系统整洁和规范,我习惯将JDK安装到
/usr/lib/jvm
sudo mkdir -p /usr/lib/jvm
解压JDK到目标目录: 将你下载的
.tar.gz
/usr/lib/jvm
jdk-xx_linux-x64.tar.gz
jdk-17.0.x
jdk-17.0.10
cd ~/Downloads sudo tar -xvf jdk-xx_linux-x64.tar.gz -C /usr/lib/jvm/ # 解压后,你可能会得到一个类似 jdk-17.0.x 的目录。为了方便管理,可以给它一个更清晰的软链接或重命名。 # 例如,如果解压后是 /usr/lib/jvm/jdk-17.0.10,可以创建一个软链接: # sudo ln -s /usr/lib/jvm/jdk-17.0.10 /usr/lib/jvm/oracle-jdk-17 # 之后所有的配置都指向 /usr/lib/jvm/oracle-jdk-17
我个人更倾向于直接重命名解压后的目录,比如
sudo mv /usr/lib/jvm/jdk-17.0.10 /usr/lib/jvm/oracle-jdk-17
配置系统环境变量(推荐使用update-alternatives
update-alternatives
注册Oracle JDK到
update-alternatives
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/oracle-jdk-17/bin/java" 1 sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/oracle-jdk-17/bin/javac" 1 sudo update-alternatives --install "/usr/bin/jar" "jar" "/usr/lib/jvm/oracle-jdk-17/bin/jar" 1 sudo update-alternatives --install "/usr/bin/javadoc" "javadoc" "/usr/lib/jvm/oracle-jdk-17/bin/javadoc" 1 # 可以根据需要注册更多Java工具,比如 jjs, keytool 等
这里的
1
选择Oracle JDK作为默认的Java版本:
sudo update-alternatives --config java sudo update-alternatives --config javac
运行这些命令后,系统会列出所有已注册的Java和Javac版本,并提示你输入数字来选择默认使用的版本。
设置JAVA_HOME
update-alternatives
java
javac
JAVA_HOME
打开你的用户配置文件(通常是
~/.bashrc
~/.profile
~/.zshrc
nano ~/.bashrc
在文件末尾添加以下两行:
export JAVA_HOME="/usr/lib/jvm/oracle-jdk-17" export PATH="$PATH:$JAVA_HOME/bin"
保存并关闭文件。
让配置立即生效:
source ~/.bashrc
如果你修改的是
~/.profile
验证安装: 打开一个新的终端窗口(或重新加载配置后),运行以下命令来确认Oracle JDK已正确安装并设置为默认:
java -version javac -version echo $JAVA_HOME
你应该能看到Oracle JDK的版本信息,并且
JAVA_HOME
这是一个非常实际的问题,尤其是在我个人开发经历中,经常会遇到。Ubuntu默认安装的OpenJDK,在大多数情况下都表现得非常出色,而且它是完全开源、免费的。但选择Oracle JDK,往往是出于一些特定的考量:
首先,兼容性需求。我遇到过一些老旧的、或者由特定厂商开发的商业Java应用,它们在设计和测试时可能就是基于Oracle JDK进行的。虽然理论上Java是“一次编写,到处运行”,但实际操作中,不同JDK实现之间在某些边缘特性、JVM参数甚至垃圾回收器行为上可能存在细微差异。为了避免那些难以追踪的“玄学”兼容性问题,或者第三方服务明确要求使用Oracle JDK时,我通常会选择它。
其次,特定功能或工具。虽然Oracle已经将很多核心功能(比如JFR/JMC)开源给了OpenJDK,但在一些非常专业的企业级场景下,Oracle JDK可能仍提供一些独特的商业特性、性能优化或者支持服务,这些对于某些高度敏感或性能关键的应用来说,可能是决定性的因素。虽然现在这些差异越来越小,但在一些遗留系统或特定领域,Oracle JDK的优势依然存在。
最后,个人习惯或团队规范。我认识不少开发者,他们从Java的早期阶段就一直使用Oracle JDK,对其工具链和行为模式非常熟悉。当团队内部有统一的JDK版本和发行商要求时,为了保持开发环境的一致性,使用Oracle JDK也是一个合理的选择。这无关乎好坏,更多是基于实际工作流和历史沉淀的考量。
总而言之,如果你只是进行日常开发、学习或者运行一般的开源应用,OpenJDK通常是足够且更简单的选择。但如果你的项目有明确的兼容性要求、需要特定的企业级支持或功能,或者只是想保持与生产环境的高度一致性,那么Oracle JDK就有了它的用武之地。
在我的日常开发中,同时维护多个Java项目是常态,而这些项目可能依赖不同的JDK版本,比如一个老项目跑在JDK 8上,新项目则需要JDK 17。这时候,高效地管理和切换JDK版本就显得尤为重要。
最优雅的解决方案,我认为非
update-alternatives
update-alternatives
/etc/alternatives
添加更多JDK版本: 如果你想安装另一个版本的JDK(比如OpenJDK 8),你可以像安装Oracle JDK一样,下载、解压到
/usr/lib/jvm/
update-alternatives
# 假设你安装了 OpenJDK 8 到 /usr/lib/jvm/openjdk-8 sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/openjdk-8/bin/java" 2 sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/openjdk-8/bin/javac" 2 # 注意这里的优先级数字,如果想让它成为默认,就设置一个比现有更高的数字。 # 如果只是备用,保持较低的优先级即可。
在不同JDK版本间切换: 这是
update-alternatives
sudo update-alternatives --config java sudo update-alternatives --config javac
系统会列出所有已注册的
java
javac
针对特定项目设置JAVA_HOME
update-alternatives
java
javac
JAVA_HOME
临时切换JAVA_HOME
JAVA_HOME
export JAVA_HOME="/usr/lib/jvm/openjdk-8" # 或者 /usr/lib/jvm/oracle-jdk-17 export PATH="$JAVA_HOME/bin:$PATH" # 确保新路径在前 java -version # 验证
这个设置只在当前终端会话有效,关闭终端后就会失效。
通过IDE或构建工具设置: 更常见且推荐的做法是,在你的IDE(如IntelliJ IDEA的Project Structure或Eclipse的Installed JREs)中直接配置项目所需的JDK路径。Maven或Gradle项目也可以在其配置文件中指定JDK路径,这样可以确保项目在不同开发者的机器上都能使用正确的JDK版本,而不会受到全局
JAVA_HOME
即使安装过程看起来很顺利,也难免会遇到一些小插曲。我个人在配置JDK环境时,最常遇到的就是
java -version
javac -version
java -version
PATH
echo $PATH
JAVA_HOME/bin
update-alternatives
/usr/bin
PATH
~/.bashrc
~/.profile
source ~/.bashrc
source ~/.profile
update-alternatives
sudo update-alternatives --config java
sudo update-alternatives --config javac
JAVA_HOME
update-alternatives
/usr/lib/jvm/oracle-jdk-17
ls -l /usr/lib/jvm/oracle-jdk-17/bin/java
javac
java
javac
java
javac
PATH
update-alternatives --config javac
应用程序运行时出现UnsupportedClassVersionError
java -jar
java -version
下载的JDK压缩包损坏:
JAVA_HOME
echo $JAVA_HOME
bin
/usr/lib/jvm/oracle-jdk-17
/usr/lib/jvm/oracle-jdk-17/bin
排查这些问题时,我通常会一步步来,从最表层的
java -version
PATH
JAVA_HOME
以上就是如何在Ubuntu中安装OracleJDK并设置环境的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号