Linux环境下JDK-8的安装与配置指南

张开发
2026/4/10 9:55:39 15 分钟阅读

分享文章

Linux环境下JDK-8的安装与配置指南
1. 为什么选择JDK-8在开始动手安装之前我们先聊聊为什么现在还有这么多人坚持使用JDK-8。作为Java开发者我自己的生产环境中有超过60%的项目仍然运行在JDK-8上。这个2014年发布的版本之所以经久不衰主要因为它的稳定性和兼容性实在太出色了。很多企业级应用特别是金融、电信这些对稳定性要求极高的行业升级JDK版本需要经过漫长的测试周期。JDK-8提供的Lambda表达式和Stream API已经能满足大部分现代编程需求而后续版本的新特性反而可能引入兼容性问题。我去年就遇到过从JDK-8升级到11导致JAXB相关功能失效的案例最后不得不回退版本。2. 准备工作2.1 确认系统架构在下载JDK之前我们必须先确认Linux系统的架构。这个步骤很多新手容易忽略结果下载了错误的版本导致安装失败。打开终端执行getconf LONG_BIT这个命令会返回32或64对应着我们需要下载的JDK版本。现在的服务器基本都是64位了但某些老旧设备或嵌入式系统可能还是32位。我上周帮一个朋友排查问题时就发现他误装了32位JDK到64位系统上导致各种奇怪的报错。2.2 选择合适的JDK包Oracle官方提供了两种JDK-8的Linux版本RPM包适用于RedHat/CentOS等tar.gz压缩包通用版本我强烈推荐使用tar.gz格式因为它不依赖特定包管理系统在任何Linux发行版上都能用。而且解压就能用卸载时直接删除目录即可不会在系统里留下各种散落的文件。3. 安装步骤详解3.1 下载JDK虽然原文提供了网盘链接但我建议直接从Oracle官网下载最新版本。打开终端执行wget --no-check-certificate --no-cookies --header Cookie: oraclelicenseaccept-securebackup-cookie https://download.oracle.com/otn-pub/java/jdk/8u341-b10/jdk-8u341-linux-x64.tar.gz这个命令会自动接受Oracle的许可协议。注意版本号中的8u341会随时间更新建议先去官网查看最新版本号。我习惯在下载完成后验证一下SHA256校验和sha256sum jdk-8u341-linux-x64.tar.gz然后与官网公布的校验值对比确保下载的文件完整无误。3.2 解压安装创建一个专门的目录存放Java相关文件是个好习惯sudo mkdir -p /usr/local/java sudo tar -zxvf jdk-8u341-linux-x64.tar.gz -C /usr/local/java/解压完成后你会看到/usr/local/java目录下有个类似jdk1.8.0_341的文件夹。这里的版本号取决于你下载的具体版本。我建议创建一个软链接方便后续管理sudo ln -s /usr/local/java/jdk1.8.0_341 /usr/local/java/default这样以后升级JDK时只需要修改这个软链接指向新版本即可不用每次都改环境变量。4. 配置环境变量4.1 修改profile文件环境变量的配置决定了系统如何找到Java命令。编辑/etc/profile文件sudo vi /etc/profile在文件末尾添加以下内容注意根据你的实际路径调整export JAVA_HOME/usr/local/java/default export CLASSPATH.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH$PATH:$JAVA_HOME/bin这里有几个细节需要注意CLASSPATH开头的.表示当前目录很多教程会漏掉这个我使用了之前创建的软链接路径这样升级JDK时不用修改这里PATH的修改使用了$PATH:新路径的方式避免覆盖原有PATH4.2 使配置生效保存文件后运行以下命令使配置立即生效source /etc/profile为了确保所有终端会话都能获取到新配置最好注销后重新登录。我遇到过好几次配置不生效的情况最后发现是因为在多个终端窗口工作有的窗口没有重新加载配置。5. 验证安装5.1 基本验证执行以下命令验证安装是否成功java -version javac -version正确的输出应该类似于java version 1.8.0_341 Java(TM) SE Runtime Environment (build 1.8.0_341-b10) Java HotSpot(TM) 64-Bit Server VM (build 25.341-b10, mixed mode)如果看到类似输出恭喜你JDK已经安装成功了但作为严谨的开发者我们还需要进一步验证。5.2 完整功能测试创建一个简单的HelloWorld.java文件echo public class HelloWorld { public static void main(String[] args) { System.out.println(Hello, JDK8!); } } HelloWorld.java然后编译并运行javac HelloWorld.java java HelloWorld如果看到Hello, JDK8!输出说明JDK的编译和运行功能都完全正常。这个完整的测试流程能发现一些单纯看版本号发现不了的问题比如我遇到过JRE正常但编译器损坏的情况。6. 常见问题排查6.1 命令未找到如果执行java命令提示command not found通常是PATH配置有问题。按以下步骤排查确认/etc/profile中的配置是否正确检查是否执行了source /etc/profile使用echo $PATH查看PATH变量是否包含JDK的bin目录直接输入完整路径测试/usr/local/java/default/bin/java -version6.2 版本不一致有时候系统自带的OpenJDK会导致版本混乱。使用which java查看java命令的实际路径which java如果指向的不是我们安装的Oracle JDK可以调整PATH变量的顺序或者使用alternatives工具设置系统默认Java版本在基于RPM的系统上sudo alternatives --config java7. 多版本管理在实际开发中我们经常需要同时管理多个JDK版本。这里分享一个我常用的多版本切换方法将所有JDK版本都安装在/usr/local/java目录下为每个版本创建独立的profile文件如java8.sh、java11.sh需要切换时直接source对应的profile文件例如创建/usr/local/java/java8.shexport JAVA_HOME/usr/local/java/jdk1.8.0_341 export PATH$PATH:$JAVA_HOME/bin使用时只需执行source /usr/local/java/java8.sh这种方法比修改全局配置更灵活也不会影响其他用户。我在本地开发机上同时装了JDK 8、11和17根据项目需求随时切换。

更多文章