尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

JDK 11环境搭建全攻略:从发行版选择到多版本管理

JDK 11环境搭建全攻略:从发行版选择到多版本管理 1. 为什么JDK 11依然是当下的“定海神针”如果你刚接触Java开发或者正准备从老版本升级面对Oracle官网复杂的版本列表和许可协议是不是有点懵别急这篇文章就是为你准备的。我经历过从JDK 8到17的多次升级也帮团队处理过无数次环境配置的“疑难杂症”。今天我们不谈那些虚的就手把手、掰开了揉碎了把JDK 11的下载、安装和环境配置给你讲透。为什么是JDK 11因为它是一个长期支持版本在稳定性、性能和新特性之间取得了绝佳的平衡是目前企业生产环境中占有率极高、堪称“定海神针”的一个版本。搞定它你就能平滑应对市面上绝大多数Java项目。网上教程很多但要么步骤跳跃要么关键细节一笔带过导致新手照着做还是报错。这篇文章的目标是让你看完之后能独立、零错误地完成从零到一的JDK 11环境搭建并且理解每一个步骤背后的“所以然”。我们会涵盖Windows和macOS两大主流平台并深入讲解环境变量配置的核心逻辑以及安装后如何验证才算真正成功。收藏这一篇足够你用上好几年。2. 下载前的关键抉择选对发行版避开许可“坑”动手下载之前有个比下载本身更重要的问题你该从哪里下载哪个版本这一步选错后面可能涉及商业许可风险。很多人直接搜“JDK 11下载”就点进第一个链接这其实很危险。2.1 理解JDK、JRE与OpenJDK首先厘清几个核心概念这决定了你的选择。JDKJava Development KitJava开发工具包。它包含了编译、运行和调试Java程序所需的一切。如果你是开发者必须安装JDK。JREJava Runtime EnvironmentJava运行时环境。它只包含运行Java程序所需的组件主要是JVM和核心类库。如果你只想运行一个Java软件比如Minecraft装JRE就够了。但JDK已经包含了JRE所以开发者直接装JDK即可。OpenJDK这是Java SE平台的一个免费、开源的参考实现。自JDK 11起Oracle宣布OpenJDK与Oracle JDK在功能上基本一致关键区别在于许可协议和长期支持。2.2 发行版选择Oracle JDK vs. 其他厂商发行版这是今天的重中之重。由于Oracle对JDK的许可策略调整我们有了更多选择。1. Oracle JDK来源Oracle官网。许可自JDK 11起Oracle JDK采用了OTN协议允许个人学习、开发和测试免费使用。但用于生产环境则需要根据Oracle的“Java SE订阅”付费。这是一个潜在的合规风险点。特点安装包内可能包含一些Oracle的增值商业功能如Java Flight Recorder的商业特性但对于绝大多数开发者这些用不到。建议个人学习、开发测试可用但企业生产环境强烈不建议使用除非已购买订阅。2. 其他厂商的OpenJDK发行版这是目前社区和企业的首选它们都基于OpenJDK源码构建提供了免费的生产环境使用许可和长期支持。主流选择有Adoptium原AdoptOpenJDK由Eclipse基金会管理社区驱动提供高质量的、经过TCK兼容性测试的OpenJDK构建。提供HotSpot和OpenJ9两种JVM选择。这是我最推荐给个人和企业开发者的选择。Amazon Corretto亚马逊提供的免费、多平台、生产就绪的OpenJDK发行版。亚马逊承诺长期支持并在其庞大的服务中得到了验证。Azul ZuluAzul Systems提供的OpenJDK发行版同样免费用于生产和商业用途。Microsoft Build of OpenJDK微软维护的OpenJDK发行版与Windows系统集成度较好。结论与选择建议 对于绝大多数场景直接选择 Adoptium 的 OpenJDK 发行版。它完全免费、开源、有保障避免了所有许可风险。本文后续的演示也将以 Adoptium 为例。2.3 确定系统架构32位 vs. 64位现在操作系统基本都是64位了。检查方法Windows右键点击“此电脑” - “属性”在“系统类型”中查看。macOS点击屏幕左上角苹果菜单 - “关于本机”查看“芯片”或“处理器”。M系列芯片Apple Silicon是ARM架构Intel芯片是x86架构。Adoptium等发行版会提供对应的安装包如aarch64对应 Apple Siliconx64对应 Intel。3. 实战下载以Adoptium为例一步步拿到安装包我们选择最推荐的 Adoptium 进行下载。步骤1访问官网打开浏览器访问 Adoptium 的官方下载页面https://adoptium.net/zh-CN/temurin/releases/。这个中文页面访问速度通常不错。步骤2选择版本与配置页面会列出所有可用的版本。我们找到JDK 11的区域。操作系统根据你的电脑选择比如WindowsmacOS 或者Linux。架构如前述Windows/Linux通常选x64 Apple Silicon Mac选aarch64 Intel Mac选x64。包类型Windows优先选择.msi安装包。它提供了图形化安装界面并能自动为你配置系统环境变量对新手极其友好。.zip是压缩包需要手动解压和配置环境变量。macOS选择.pkg安装包图形化安装或.tar.gz压缩包。Linux选择.deb(Debian/Ubuntu) 或.rpm(RedHat/CentOS) 或.tar.gz。JVM实现默认的HotSpot即可这是最主流、经验最丰富的JVM。步骤3下载点击选好的版本对应的下载链接。例如对于 Windows x64 就点击Installer (msi)旁边的下载按钮。下载会得到一个类似OpenJDK11U-jdk_x64_windows_hotspot_11.0.22_7.msi的文件。注意官网有时会通过重定向来统计下载量耐心等待即可。务必从上述官网下载避免从不明来源下载被篡改的安装包。4. 安装过程详解图形化与手动安装的取舍安装过程因选择的包类型而异我们分情况讨论。4.1 Windows平台使用.msi安装包推荐新手这是最省心的方式。双击下载好的.msi文件运行安装程序。点击“Next”接受许可协议。关键步骤设置安装路径和功能。默认路径通常是C:\Program Files\Eclipse Adoptium\jdk-11.0.xx.7-hotspot。你可以点击“Change...”修改但建议保持默认或改到一个没有中文和空格的路径例如D:\Java\jdk-11。路径含中文或空格是后续很多诡异错误的根源。下方通常有一个选项叫“Set JAVA_HOME variable”。务必勾选它这个选项会让安装程序自动为你创建名为JAVA_HOME的系统环境变量并更新Path。这是.msi安装包最大的优势。继续点击“Next”直至“Install”完成安装。安装后验证临时命令窗口 按下Win R输入cmd打开命令提示符。 输入以下命令java -version如果安装并自动配置成功你会看到类似下面的输出显示了Adoptium的版本信息openjdk version 11.0.22 2024-01-16 OpenJDK Runtime Environment Temurin-11.0.227 (build 11.0.227) OpenJDK 64-Bit Server VM Temurin-11.0.227 (build 11.0.227, mixed mode)同时可以检查JAVA_HOME是否已设置echo %JAVA_HOME%应该会打印出你的JDK安装路径。4.2 Windows平台使用.zip压缩包推荐进阶用户如果你需要更灵活地管理多个JDK版本或者喜欢绿色版软件可以选择.zip包。将下载的.zip文件解压到你想要的目录例如D:\Java\jdk-11。接下来的环境变量配置是必须且关键的一步我们将在下一章详细讲解。4.3 macOS平台使用.pkg安装包双击下载的.pkg文件。跟随图形化安装向导操作大部分时间只需点击“继续”。安装程序会将JDK安装到系统标准目录/Library/Java/JavaVirtualMachines/temurin-11.jdk/Contents/Home。macOS的.pkg安装包通常也会自动配置命令行环境开箱即用。安装后验证 打开“终端”Terminal输入java -version查看输出是否正确。4.4 macOS/Linux平台使用.tar.gz压缩包及手动安装这种方式适用于所有Unix-like系统包括macOS和Linux给你最大的控制权。打开终端。使用tar命令解压到目标目录。通常建议放在/usr/local或用户主目录下。# 假设下载文件在 ~/Downloads cd ~/Downloads tar -xzf OpenJDK11U-jdk_x64_mac_hotspot_11.0.22_7.tar.gz # 将解压出的jdk目录移动到/usr/local可能需要sudo权限 sudo mv jdk-11.0.xx7 /usr/local/ # 或者移动到用户目录 mv jdk-11.0.xx7 ~/Java/同样需要手动配置环境变量。5. 环境变量配置的核心原理与实操手动配置必看如果你使用了Windows的.msi或macOS的.pkg并且勾选了自动配置选项那么本章可以跳过。但理解环境变量是Java开发者的一项基本功尤其是当你需要管理多个JDK版本时。5.1 环境变量是什么为什么需要配置你可以把环境变量想象成系统的“全局通讯录”。当你在命令行输入一个命令如java或javac时系统会去这个“通讯录”里查找对应的程序在哪里。JAVA_HOME这是一个自定义变量它的值是你的JDK安装目录的根路径。很多Java相关的工具如Maven、Gradle、Tomcat、IDE都会读取这个变量来定位JDK。设置它主要是为了方便其他软件引用。Path这是一个系统固有变量里面包含了一系列目录路径。当你在命令行输入命令时系统会按照Path变量中列出的目录顺序逐个去寻找可执行文件。我们需要把JDK的bin目录里面包含了javajavacjar等关键命令添加到Path中这样系统才能在任意位置识别这些命令。5.2 Windows系统手动配置环境变量假设你的JDK解压或安装在了D:\Java\jdk-11。步骤1创建 JAVA_HOME右键点击“此电脑” - “属性” - “高级系统设置” - “环境变量”。在“系统变量”区域如果想对所有用户生效或“用户变量”区域仅对当前用户生效点击“新建”。变量名输入JAVA_HOME。变量值输入你的JDK安装路径D:\Java\jdk-11。注意路径不要包含bin目录要指向JDK根目录。点击“确定”。步骤2编辑 Path 变量在“系统变量”或“用户变量”列表中找到名为Path的变量选中并点击“编辑”。在编辑界面点击“新建”。输入%JAVA_HOME%\bin。这里使用了%JAVA_HOME%来引用前面定义的变量这是一个好习惯。如果以后JDK路径变了只需修改JAVA_HOMEPath会自动更新。点击“确定”保存所有更改。重要提示在旧版本Windows中Path的编辑框是单行文本需要用英文分号;将新路径与原有路径隔开例如在末尾添加;%JAVA_HOME%\bin。务必注意分号是英文符号。步骤3验证配置关闭所有已打开的命令提示符窗口必须关闭新配置的环境变量需要在新窗口中生效重新打开一个。 依次输入以下命令echo %JAVA_HOME% java -version javac -versionecho命令应正确显示你的JDK路径。java -version和javac -version应成功输出版本信息。如果javac命令也有效说明JDK而不仅仅是JRE配置成功。5.3 macOS / Linux 系统手动配置环境变量在Unix-like系统中环境变量通常在shell的配置文件中设置如~/.bash_profile~/.zshrc如果你使用Zsh shellmacOS Catalina及以后版本默认是Zsh或~/.bashrc。假设你的JDK安装在/usr/local/jdk-11或~/Java/jdk-11。步骤1确定你的Shell和配置文件打开终端输入echo $SHELL。如果输出是/bin/zsh 则编辑~/.zshrc 如果是/bin/bash 则编辑~/.bash_profile或~/.bashrc。步骤2编辑配置文件使用文本编辑器如nano或vim打开配置文件# 如果使用Zsh nano ~/.zshrc # 如果使用Bash nano ~/.bash_profile步骤3添加环境变量设置在文件末尾添加以下行# 设置JAVA_HOME 将路径替换为你的实际JDK路径 export JAVA_HOME/usr/local/jdk-11 # 将JAVA_HOME的bin目录添加到PATH变量最前面 export PATH$JAVA_HOME/bin:$PATHexport命令用于设置环境变量。$JAVA_HOME/bin:$PATH的含义是新的PATH值由$JAVA_HOME/bin和原来的$PATH拼接而成冒号:是路径分隔符。将$JAVA_HOME/bin放在前面意味着系统会优先使用我们配置的JDK。步骤4使配置生效保存并关闭编辑器在nano中按CtrlX 然后按Y确认 最后按回车。 然后在终端中执行以下命令让配置文件立即生效# 如果修改的是.zshrc source ~/.zshrc # 如果修改的是.bash_profile source ~/.bash_profile步骤5验证配置在终端中输入echo $JAVA_HOME java -version javac -version检查输出是否正确。6. 安装后的深度验证与多版本管理仅仅能运行java -version还不够我们需要确保开发环境完全就绪。6.1 编写并运行你的第一个Java程序这是最直接的验证方式。创建一个文本文件命名为HelloWorld.java。注意文件名必须与类名完全一致包括大小写。用记事本或任何代码编辑器打开输入以下经典代码public class HelloWorld { public static void main(String[] args) { System.out.println(Hello, JDK 11!); } }保存文件。假设你把它保存在D:\test目录。打开命令行Windows CMD或PowerShell macOS/Linux终端导航到该目录cd D:\test编译使用javac命令将.java源文件编译成.class字节码文件。javac HelloWorld.java如果编译成功该目录下会生成一个HelloWorld.class文件。没有任何输出通常意味着成功。运行使用java命令运行编译好的类。java HelloWorld注意这里命令的参数是类名HelloWorld 而不是文件名HelloWorld.class。如果一切正常你将在屏幕上看到输出Hello, JDK 11!。至此你的JDK 11开发环境已经100%配置成功具备了编写、编译和运行Java程序的能力。6.2 如何在同一台机器上管理多个JDK版本在实际开发中你可能需要同时维护针对JDK 8 11 17等不同版本的项目。如何优雅地切换Windows下的思路 手动修改JAVA_HOME和Path变量是最直接但笨拙的方法。更推荐以下方式使用IDE管理IntelliJ IDEA Eclipse等现代IDE都允许你为每个项目单独指定JDK路径。这是最常用、最无痛的方式。在IDE的设置中搜索“SDK”或“JDK”添加所有已安装的JDK然后在项目结构中为当前项目选择所需的版本即可。使用第三方工具JEnv这是一个命令行工具可以方便地设置全局或目录局部的JDK版本。不过它在Windows上的支持相对复杂。手动批处理脚本你可以编写不同的.bat脚本在脚本中临时设置JAVA_HOME和Path然后在这个脚本启动的命令行窗口中使用特定的JDK。macOS / Linux下的神器jEnv 或 SDKMAN!在Unix-like系统上有非常优秀的版本管理工具。jEnv轻量级纯命令行。安装后你可以通过jenv add path添加JDK 用jenv global 11或jenv local 11来设置全局或当前目录的JDK版本。SDKMAN!功能更强大不仅可以管理JDK还能管理Maven Gradle Spring Boot CLI等众多Java生态工具。安装后使用sdk list java查看可安装的版本用sdk install java 11.0.xx-tem安装指定版本用sdk use java 11.0.xx-tem切换当前shell的版本。对于大多数开发者依赖IDE进行项目级JDK管理已经足够。系统环境变量可以设置为你最常用的一个版本比如JDK 11其他版本在IDE中按需切换互不干扰。7. 常见问题排查与解决踩坑实录即使按照步骤操作也可能遇到问题。这里汇总几个高频问题。问题1‘java’ 不是内部或外部命令也不是可运行的程序原因这是最经典的错误意味着系统在Path变量指定的路径里找不到java.exe。排查检查JAVA_HOME变量是否正确设置路径是否指向JDK根目录不含bin。检查Path变量中是否包含了%JAVA_HOME%\binWindows或$JAVA_HOME/binmacOS/Linux。关键一步打开命令行手动进入JDK安装目录下的bin文件夹然后执行java -version。如果这里能成功说明JDK本身没问题问题100%出在环境变量配置上。检查路径中是否有中文或空格建议使用全英文无空格路径。重启命令行窗口修改环境变量后必须关闭所有旧命令行窗口重新打开一个新的才能生效。问题2‘javac’ 不是内部或外部命令原因java命令有效但javac无效这通常意味着你安装或配置的只是JRE而不是JDK。JRE不包含开发工具如编译器javac。解决请确认你下载并安装的是JDK而不是JRE。重新检查下载的文件名和安装目录确保目录下有bin\javac.exeWindows或bin/javacmacOS/Linux这个文件。问题3macOS下安装后命令仍指向旧版本Apple Java现象运行java -version显示的是类似java version “1.8.0_...”来自Apple而不是你刚安装的JDK 11。原因macOS系统预装了一个旧的Java 6或Apple提供的Java 8并且其路径在系统默认路径中优先级较高。解决确保你已正确配置了~/.zshrc或~/.bash_profile并且将$JAVA_HOME/bin添加到了$PATH变量的最前面export PATH$JAVA_HOME/bin:$PATH。执行source命令后再通过which java命令查看当前生效的java命令路径它应该指向你新安装的JDK目录。问题4IDE如IntelliJ IDEA检测不到已安装的JDK原因IDE有自己独立的JDK配置列表不会自动读取所有系统路径。解决在IDE的设置中例如IntelliJ IDEA的File - Project Structure - SDKs点击“”号选择“Add JDK”然后手动导航到你安装JDK的根目录例如D:\Java\jdk-11或/Library/Java/JavaVirtualMachines/temurin-11.jdk/Contents/Home添加即可。IDE会自动识别。配置JDK环境是Java开发者的入门第一课也是一个容易让人沮丧的环节因为任何一个小疏忽都可能导致失败。我的经验是耐心、仔细、理解每个步骤的意义。一旦你成功配置好一次并理解了JAVA_HOME和Path的原理以后再遇到任何环境问题你都能自己快速定位和解决。选择Adoptium这样的开源发行版使用.msi/.pkg安装包并勾选自动配置选项能帮你避开90%的坑。剩下的就是动手写代码去验证了。希望这篇超详细的指南能让你在Java学习的起步阶段就走得稳稳当当。
返回列表