资讯动态

JDK 1.8.0_231 安装配置全指南:Windows 与 Linux 环境变量设置及验证

发布时间:2026/10/20 4:38:23 来源:尧图企业网站定制
简介JDK1.8.0_231 是 Oracle 于 2019 年 11 月发布的 Java 8 重要更新版面向 64 位操作系统适合 Java 初学者、后端开发者及需要在多环境快速部署 JDK 的技术人员。该版本聚焦性能优化、稳定性与安全性并完整保留 Lambda 表达式、Stream API、java.time 日期时间 API 等 Java 8 核心特性64 位架构可充分利用多核处理器与更大内存应对大数据及内存密集型应用。资源为免安装 zip 包解压后配置 JAVA_HOME、PATH、CLASSPATH 即可使用省去繁琐安装流程。压缩包约 172.9MB共 1473 个文件以 705 个 jar 核心类库、228 个 xml 配置、118 个 dll 与 74 个 exe 可执行组件为主另含 properties、html、css、ttf 等资源文件目录结构完整。目前已有 2072 人学习下载适合需要稳定 Java 8 运行环境、快速搭建开发或测试环境的读者参考使用。1. 从一次 JDK 版本翻车说起为什么我坚持用 jdk1.8.0_231上周帮一个做后端的朋友排查问题他本地跑一个老项目编译死活过不去报Unsupported class file major version 61。我问他装的什么 JDK他说“官网下的最新版”。问题就出在这——那个项目依赖的构建插件只认 Java 8他装了 Java 17版本对不上工具链直接罢工。这种坑我见过太多次了尤其是维护 2019 年前后启动的项目JDK 1.8 几乎是标配而jdk1.8.0_231这个版本又是当年被大量项目锁定的一个稳定小版本。这篇文章就是写给正在装 JDK 1.8、或者装完发现环境不对的开发者。我会把jdk1.8.0_231.zip这个包从下载、解压、配环境变量到验证跑通的全过程拆开讲包括 64 位和 32 位怎么选、JAVA_HOME和Path到底怎么配才不出玄学问题、装坏了怎么回退。新手照着走能跑通熟手可以重点看版本差异和参数取舍那几段。2. 装之前先把环境理清楚版本、位数和目录规划2.1 为什么是 1.8.0_231 而不是随便一个 1.8JDK 1.8 的小版本号很多从1.8.0_1到1.8.0_3xx都有。1.8.0_231属于 2019 年发布的版本这个时间点很关键——大量企业项目、老框架比如某些 Spring 4.x 搭配的构建工具在这个版本上验证过兼容性。再往后的1.8.0_2xx虽然也是 1.8但个别小版本改动了加密策略或者证书链会导致老项目启动时报SSLHandshakeException。我一般会建议如果项目没有明确指定就选1.8.0_231这个被广泛使用的版本别追最新小版本。另外要区分 JDK 和 JRE。jdk1.8.0_231.zip这种命名通常是完整 JDK包含javac、jar、jps这些开发工具如果你只跑不编译JRE 也够但做开发必须用 JDK。解压后目录里能看到bin、jre、lib、include这几层就说明是完整包。2.2 64 位还是 32 位看系统也看内存jdk1.8 64位下载是高频搜索词但别盲目下 64 位。判断方法很简单Windows 在“系统信息”里看“系统类型”Linux 执行uname -m输出x86_64就是 64 位i686或i386就是 32 位。为什么强调这个因为 32 位 JDK 最大堆内存受限于 4GB 地址空间实际能用的堆往往不到 2GB跑大一点的服务直接OutOfMemoryError。反过来如果你的机器是 32 位系统硬装 64 位 JDK 会直接报“不是有效的 Win32 应用程序”。还有一个容易忽略的点如果你同时装了多个 JDK环境变量里的顺序决定了实际生效的是哪个。我习惯把 JDK 装在固定路径比如 Windows 用D:\dev\jdk1.8.0_231Linux 用/usr/local/jdk1.8.0_231避免路径里带空格和中文后面配JAVA_HOME能省掉一堆引号问题。2.3 解压前先确认包完整拿到jdk1.8.0_231.zip之后别急着解压。先核对文件大小完整包一般在 180MB 到 200MB 之间不同平台略有差异。如果只有几十 MB大概率是下载中断的残包。Windows 下可以右键看属性Linux 用ls -lh看。另外解压工具建议用 7-Zip 或系统自带的别用某些会改文件权限的第三方工具否则 Linux 下bin目录里的可执行文件可能丢掉执行位后面java -version会报Permission denied。3. Windows 下安装 jdk1.8.0_231解压、配变量、验证3.1 解压到固定目录并检查目录结构把jdk1.8.0_231.zip解压到你规划好的目录。我一般直接解压到D:\dev\解压完会得到D:\dev\jdk1.8.0_231。解压后进去看一眼确认有bin\java.exe、bin\javac.exe、jre\bin\java.exe这几个关键文件。如果bin目录下没有javac.exe说明你拿到的是 JRE 而不是 JDK编译会失败。# 在解压后的目录里执行确认关键文件存在 dir D:\dev\jdk1.8.0_231\bin\java.exe dir D:\dev\jdk1.8.0_231\bin\javac.exe这两条命令是 Windows 的dir用来确认文件真实存在。如果提示“找不到文件”要么解压不完整要么路径写错了。注意路径里的反斜杠在命令行里直接写就行不用转义。3.2 配置 JAVA_HOME 和 Path 的正确顺序这是最容易出玄学的地方。右键“此电脑” → 属性 → 高级系统设置 → 环境变量。在“系统变量”里新建JAVA_HOME值填D:\dev\jdk1.8.0_231结尾不要带分号也不要把bin加进去。然后编辑Path新增一条%JAVA_HOME%\bin并且把它移到最上面。为什么强调顺序因为如果你之前装过其他 JDKC:\ProgramData\Oracle\Java\javapath这类路径可能排在前面系统会优先用那个导致你配了JAVA_HOME但java -version还是旧版本。# 配置完成后新开一个 cmd 窗口执行 echo %JAVA_HOME% # 应输出 D:\dev\jdk1.8.0_231 java -version # 应输出 java version 1.8.0_231echo %JAVA_HOME%用来确认变量本身生效java -version看实际调用的版本。如果JAVA_HOME对了但java -version不对就是Path顺序问题回去把%JAVA_HOME%\bin上移。注意一定要新开命令行窗口旧窗口不会重新加载环境变量。3.3 验证 javac 和 jar 是否可用光有java能跑还不够开发要的是javac。执行javac -version应该输出javac 1.8.0_231。如果提示“不是内部或外部命令”说明Path里没配好或者你装的是 JRE。再执行jar --version正常会输出jar 1.8.0_231。这三个命令都通过Windows 下的 JDK 才算真正装好。javac -version jar --versionjavac是编译器jar是打包工具这两个能跑说明bin目录完整且Path生效。如果javac报错但java正常九成是Path里只加了jre\bin而不是jdk\bin检查一下你加的是哪个路径。4. Linux 下部署 jdk1.8.0_231解压、软链、多版本切换4.1 上传解压并设置目录权限Linux 下我一般把 JDK 放在/usr/local/。先把jdk1.8.0_231.zip传上去然后解压。如果没有unzip命令用yum install -y unzip或apt install -y unzip装一下。解压后目录是/usr/local/jdk1.8.0_231。接着确认bin/java有执行权限没有的话补上。cd /usr/local unzip jdk1.8.0_231.zip chmod x /usr/local/jdk1.8.0_231/bin/* ls -l /usr/local/jdk1.8.0_231/bin/javachmod x给bin下所有文件加执行权限避免解压工具丢权限导致java无法运行。ls -l看java文件权限位里有没有x有就对了。如果解压出来多了一层目录比如jdk1.8.0_231/jdk1.8.0_231把里层移出来或者直接改路径。4.2 配置全局环境变量并做软链接编辑/etc/profile在末尾追加JAVA_HOME和PATH。我习惯再加一个软链接/usr/local/jdk指向具体版本这样以后换版本只改软链接不用动环境变量。# 追加到 /etc/profile export JAVA_HOME/usr/local/jdk1.8.0_231 export PATH$JAVA_HOME/bin:$PATH # 建立软链接 ln -s /usr/local/jdk1.8.0_231 /usr/local/jdkexport把变量导出为全局环境变量$JAVA_HOME/bin放在$PATH前面保证优先调用这个 JDK。软链接的好处是如果以后要换1.8.0_241只需ln -sfn重新指向JAVA_HOME改成/usr/local/jdk即可。改完执行source /etc/profile让配置立即生效。4.3 多版本共存时的切换方法服务器上经常同时有 JDK 8 和 JDK 11。这时候别把两个都写进PATH用update-alternatives管理更干净。把两个版本的java、javac都注册进去然后通过命令切换。update-alternatives --install /usr/bin/java java /usr/local/jdk1.8.0_231/bin/java 1 update-alternatives --install /usr/bin/javac javac /usr/local/jdk1.8.0_231/bin/javac 1 update-alternatives --config java--install注册路径和优先级最后的数字是优先级越大越优先。--config java会列出所有已注册版本输入编号即可切换。这样切换不影响JAVA_HOME适合需要频繁换版本的场景。注意javac也要单独注册否则编译器和运行时版本可能不一致。5. 避坑与排查装完 JDK 1.8 后最常见的五个问题5.1 现象java -version 显示旧版本或找不到命令原因通常是Path里存在多个 Java 路径且旧路径排在前面或者环境变量改完没开新终端。解决方法是检查Path顺序把%JAVA_HOME%\bin或$JAVA_HOME/bin移到最前Linux 下用which java看实际调用的是哪个路径再用update-alternatives调整优先级。Windows 下还要注意C:\Windows\System32里可能残留java.exe直接删掉或改名。5.2 现象编译报 “Unsupported class file major version”这是用高版本 JDK 编译了低版本项目或者反过来。major version 61对应 Java 1752对应 Java 8。解决方法是确认javac -version和项目要求的版本一致。如果项目用 Maven还要检查pom.xml里的maven.compiler.source和target是否设为1.8。光配JAVA_HOME不够构建工具可能自己指定了 JDK 路径。5.3 现象Linux 下执行 java 报 Permission denied解压时权限丢失bin/java没有执行位。执行chmod x /usr/local/jdk1.8.0_231/bin/*补上。如果还不行检查挂载分区是不是带了noexec选项用mount | grep 分区看有noexec就换目录或者重新挂载。5.4 现象JAVA_HOME 配了但 Tomcat 或 Maven 不认有些工具启动脚本会硬编码 JDK 路径或者读取的是JRE_HOME。检查setclasspath.sh、catalina.sh里有没有写死JAVA_HOME。另外JAVA_HOME结尾不要带分号或斜杠Windows 下带分号会导致路径解析成D:\dev\jdk1.8.0_231;工具拼接bin时变成非法路径。5.5 现象解压后目录里没有 jre 文件夹jdk1.8.0_231正常应该自带jre子目录。如果没有可能是下载的是精简包或者解压不完整。重新下载完整包核对文件大小。缺少jre会导致某些依赖tools.jar的工具比如早期版本的 Arthas无法运行。6. 装完怎么验证跑通一个最小可复现的编译测试6.1 写一个带版本输出的测试类光跑java -version只能证明运行时可用要验证编译和运行整条链路我习惯写一个几行的测试类。新建VersionCheck.java内容如下public class VersionCheck { public static void main(String[] args) { // 输出运行时版本和 Java 主目录确认环境变量生效 System.out.println(Java Version: System.getProperty(java.version)); System.out.println(Java Home: System.getProperty(java.home)); System.out.println(Class Version: System.getProperty(java.class.version)); } }这个类不依赖任何第三方库只读取系统属性。java.version是运行时版本java.home是实际使用的 JDK 路径java.class.version是类文件版本号Java 8 对应 52.0。三个输出能同时验证运行时、路径和编译目标。6.2 编译并运行核对输出javac VersionCheck.java java VersionCheck先编译再运行。如果javac报错说明编译器有问题如果编译通过但java报UnsupportedClassVersionError说明编译和运行用了不同版本的 JDK。正常输出应该是Java Version: 1.8.0_231 Java Home: D:\dev\jdk1.8.0_231\jre Class Version: 52.0注意Java Home显示的是jre子目录这是正常的JDK 运行时实际用的是jre。如果Java Version不是1.8.0_231回去检查Path和JAVA_HOME。Class Version必须是52.0如果是61.0说明你实际在用 Java 17 编译。6.3 验证 jar 打包和依赖解析再补一步把测试类打成 jar 并运行确认jar工具链完整jar cvf versioncheck.jar VersionCheck.class java -cp versioncheck.jar VersionCheckjar cvf里c是创建、v是输出详情、f是指定文件名。java -cp指定类路径运行。如果这一步能输出和上面一样的结果说明 JDK 的编译、打包、运行三个环节全部打通。我一般还会顺手执行jps看一下进程列表能正常输出说明jps工具也可用。6.4 我自己的验证习惯从那以后我每次装完 JDK 都不只看java -version而是强制走一遍“写测试类 → 编译 → 打包 → 运行”这条链路。因为java -version只能证明运行时在证明不了javac和jar的版本一致。曾经有一次服务器上java是 1.8但javac指向了 11编译出来的 class 在 1.8 上跑直接报错排查了半天才发现是update-alternatives只配了java没配javac。希望这套验证流程能帮你少走一次弯路。本文还有配套的精品资源点击获取

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑