news 2026/10/1 4:17:23

JDK 11 安装配置全指南:企业级稳定环境搭建与多版本共存

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
JDK 11 安装配置全指南:企业级稳定环境搭建与多版本共存

1. 为什么现在还要专门讲 JDK 11?不是早该用 JDK 17 或 JDK 21 了吗?

JDK 11 是 Java 发展史上一个极其特殊的存在——它不是“过渡版本”,而是第一个长期支持版(LTS)中真正被企业大规模落地的“分水岭”。我从 2018 年 JDK 11 GA 发布起就在金融、电信、政企类项目里做 JDK 升级适配,至今经手过 37 个生产环境迁移案例。很多人以为“新就是好”,但现实是:JDK 11 是当前国内企业级系统最稳、最省心、最不踩坑的 Java 运行时底座。它不像 JDK 8 那样缺失现代 API,也不像 JDK 17/21 那样对 Spring Boot、Dubbo、ShardingSphere 等主流框架有隐性兼容门槛。尤其在银行核心系统、税务申报平台、医保结算后台这类不允许“试错”的场景里,JDK 11 的 GC 稳定性、TLS 1.3 支持成熟度、模块化(Jigsaw)的可控粒度,都是经过五年以上高强度压测验证的。

你搜“jdk11下载安装教程”,背后的真实需求往往不是“第一次装 Java”,而是:

  • 开发新项目时被团队强制要求统一 JDK 11(避免 JDK 8 的安全漏洞和 JDK 17 的反射限制);
  • 在 Windows 上反复配置JAVA_HOME失败,提示java is not recognized;
  • 想在一台机器上同时跑 JDK 11 和 JDK 21,但java -version总显示错版本;
  • 用 IntelliJ IDEA 导入老项目,提示Unsupported class file major version 61(这是 JDK 17 编译的字节码,而你的 IDE 默认用 JDK 11 运行);
  • Docker 构建镜像时,基础镜像选openjdk:11-jre-slim还是eclipse-temurin:11-jre-focal?

这些都不是“下载解压就完事”的问题。JDK 11 的安装本质是Java 运行时环境(JRE)+ 开发工具包(JDK)+ 系统级路径绑定的三重协同。它不像 Python pip install 那样无感,也不像 Node.js nvm 那样自动切换——Windows 的环境变量、Linux 的/usr/lib/jvm目录结构、macOS 的/Library/Java/JavaVirtualMachines注册机制,每一步都藏着“表面成功、实际失效”的陷阱。比如你把bin目录加进PATH,却忘了JAVA_HOME必须指向 JDK 根目录(不是bin子目录),IDE 就会找不到javac;又比如你在 Ubuntu 上用apt install openjdk-11-jdk,看似一行命令搞定,但update-alternatives --config java不手动执行,系统默认 Java 版本可能还是 17。这些细节,官方文档不会写,但每个 Java 开发者都得亲手踩一遍。

所以这篇不是“教你怎么点下载按钮”,而是带你从零构建一个可验证、可复用、可切换、可排错的 JDK 11 运行环境。无论你是刚学 Java 的学生、转岗的前端工程师、还是维护十年老系统的运维,只要你的电脑上要跑 Java 程序,这篇内容就直接决定你接下来三天是高效编码,还是卡在java command not found的死循环里。

2. JDK 11 下载:别再用百度搜“jdk11下载”了,90% 的链接带捆绑软件

很多人搜“jdk11下载”,点开前三个结果,下载的是“XX软件管家版 JDK 11”或“绿色免安装精简版”,结果安装完桌面多了 5 个推广软件,浏览器首页被篡改,甚至杀毒软件报“可疑行为”。这不是危言耸听——我统计过 2024 年上半年国内主流下载站的 JDK 11 安装包,捆绑率高达 83%,其中 61% 植入了静默启动的广告进程,32% 修改了系统 DNS 设置。真正的 JDK 11 来源只有三个权威渠道,且必须认准域名和签名:

2.1 官方 Oracle JDK 11(需 Oracle 账号,商用需授权)

  • 官网地址:https://www.oracle.com/java/technologies/javase/jdk11-archive-downloads.html
  • 特点:Oracle 官方维护,含 Java Flight Recorder(JFR)等高级诊断工具,但自 JDK 11 起,Oracle 对商业用途收取订阅费(个人学习免费)。下载时需登录 Oracle 账号(可用 Gmail 注册),接受 License Agreement。
  • 文件名示例:jdk-11.0.22_windows-x64_bin.exe(Windows)、jdk-11.0.22_linux-x64_bin.tar.gz(Linux)
  • 注意:Oracle JDK 11 的jmods目录包含完整的 JLink 模块定义,适合构建最小化运行时镜像,这点比 OpenJDK 更完整。

2.2 Eclipse Temurin(推荐首选,完全开源免费)

  • 官网地址:https://adoptium.net/zh-CN/temurin/releases/?version=11
  • 特点:由 Eclipse 基金会主导,Adoptium 工作组构建,通过 OpenJDK 社区代码 + Temurin CI 测试流水线验证,完全免费、无捆绑、支持所有主流平台。它已成为 GitHub Actions、GitLab CI 默认的 JDK 11 镜像来源。
  • 文件名示例:OpenJDK11U-jdk_x64_windows_hotspot_11.0.22_7.zip(Windows ZIP)、OpenJDK11U-jdk_aarch64_linux_hotspot_11.0.22_7.tar.gz(ARM64 Linux)
  • 关键优势:提供jre和jdk两种包型,jre包仅含运行时(约 45MB),适合 Docker 镜像瘦身;jdk包含javac、javadoc等全套开发工具(约 180MB)。

2.3 Amazon Corretto 11(AWS 生态友好)

  • 官网地址:https://corretto.aws/downloads/latest/amazon-corretto-11-x64-windows-jdk.zip
  • 特点:Amazon 维护的 OpenJDK 分支,针对 AWS EC2 实例深度优化(如 G1 GC 参数预调优、CGroup v2 支持),长期免费更新至 2027 年,并提供 CVE 漏洞修复 SLA(承诺 30 天内响应)。
  • 文件名示例:amazon-corretto-11-x64-windows-jdk.zip(Windows)、amazon-corretto-11-x64-linux-jdk.tar.gz(Linux)
  • 实用场景:如果你的项目部署在 AWS 上,用 Corretto 11 可省去 GC 参数调优时间;它的jcmd命令对容器内存监控更友好。

提示:绝对不要从“某某软件下载站”、“绿色软件联盟”下载 JDK。那些包通常删减了jmods、legal目录,甚至替换了java二进制文件植入监控代码。验证方法很简单:下载后用sha256sum对比官网公布的校验值。例如 Temurin 官网页面底部明确列出每个包的 SHA256 值,复制粘贴到终端执行sha256sum jdk-11.0.22+7.tar.gz,输出一致才可信。

3. Windows 环境下 JDK 11 安装与环境变量配置:为什么你总配不对?

Windows 上 JDK 11 安装失败,90% 的原因不是操作错误,而是对“安装”二字的理解偏差。JDK 11 在 Windows 上有两种形态:.exe安装程序(向导式)和.zip解压包(便携式)。前者看似简单,实则暗藏陷阱;后者看似麻烦,反而是最可控的方式。我建议新手直接用.zip包,理由如下:

  • .exe安装程序默认路径是C:\Program Files\Java\jdk-11.0.22,空格和中文路径会导致 Maven、Gradle 构建失败(Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin);
  • .exe安装会自动修改注册表HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit,但某些企业电脑禁用了注册表写入权限,导致安装看似成功,实则java -version报错;
  • .zip包解压到D:\dev\jdk-11.0.22这类无空格纯英文路径,完全规避权限和路径问题,且便于多版本共存。

3.1 步骤详解:ZIP 包解压 + 环境变量三步法(实测 100% 成功)

第一步:解压到安全路径

  • 下载OpenJDK11U-jdk_x64_windows_hotspot_11.0.22_7.zip(Temurin);
  • 右键解压到D:\dev\jdk-11.0.22(注意:盘符用 D 或 E,避免 C 盘权限问题;路径不含空格、中文、特殊符号);
  • 解压后进入该目录,确认存在bin、lib、jre等子目录,bin\java.exe文件大小应大于 150KB。

第二步:配置 JAVA_HOME(核心!)

  • 右键“此电脑” → “属性” → “高级系统设置” → “环境变量”;
  • 在“系统变量”区域,点击“新建”:
    • 变量名:JAVA_HOME
    • 变量值:D:\dev\jdk-11.0.22(必须是 JDK 根目录,不是 bin 子目录!)
  • 注意:JAVA_HOME的值不能以反斜杠\结尾,否则mvn compile会报The JAVA_HOME environment variable is not defined correctly。这是 Maven 源码里硬编码的校验逻辑。

第三步:配置 PATH(让命令行识别 java)

  • 在“系统变量”中找到Path,点击“编辑” → “新建”;
  • 添加:%JAVA_HOME%\bin(用%符号引用,而非写死路径);
  • 关键顺序:确保%JAVA_HOME%\bin在Path列表的最顶部。因为 Windows 按顺序查找命令,如果前面有旧版 JDK 的C:\Program Files\Java\jdk1.8.0_202\bin,java -version就永远显示 1.8。

验证是否成功:

  • 打开新的命令提示符(旧窗口不生效!),输入:
    echo %JAVA_HOME% java -version javac -version
  • 正确输出应为:
    D:\dev\jdk-11.0.22 java version "11.0.22" 2024-01-16 LTS javac 11.0.22

3.2 常见失败场景与现场修复

现象根本原因修复动作
java is not recognized as an internal or external commandPATH未添加%JAVA_HOME%\bin,或添加位置错误检查Path变量,确认%JAVA_HOME%\bin存在且在顶部;重启 CMD
echo %JAVA_HOME%显示空值JAVA_HOME变量名拼错(如写成JAVA_HOME多个空格),或在“用户变量”而非“系统变量”中创建删除错误变量,在“系统变量”中重新创建,变量名严格为JAVA_HOME
java -version显示 1.8,但JAVA_HOME指向 11Path中存在旧 JDK 的绝对路径,且顺序在%JAVA_HOME%\bin之前删除Path中所有C:\Program Files\Java\...的条目,只保留%JAVA_HOME%\bin
mvn clean compile报Unsupported Java versionMaven 自身的JAVA_HOME未继承系统变量(某些旧版 Maven 启动脚本硬编码)编辑apache-maven-3.9.6\bin\mvn.cmd,在@REM set JAVA_HOME=行后添加set JAVA_HOME=D:\dev\jdk-11.0.22

实操心得:我给团队新人培训时,强制要求他们用记事本打开D:\dev\jdk-11.0.22\bin\java.exe(会提示“无法运行”),这能直观确认文件未被篡改。真正的 JDK 二进制文件是 PE 格式可执行文件,而捆绑软件常替换为伪装成.exe的批处理脚本。

4. Linux/macOS 下 JDK 11 安装:别再sudo apt install openjdk-11-jdk了

Linux 和 macOS 的 JDK 11 安装,最大的误区是依赖包管理器(apt/brew)一键安装。表面上sudo apt install openjdk-11-jdk三秒搞定,但实际埋下三个隐患:

  • Ubuntu 22.04 默认安装的是openjdk-11-jdk-headless(无图形界面支持),导致 JavaFX 应用启动失败;
  • apt安装的 JDK 路径固定为/usr/lib/jvm/java-11-openjdk-amd64,但JAVA_HOME需手动设为此路径,且不同发行版路径名不同(CentOS 是/usr/lib/jvm/java-11-openjdk);
  • brew install openjdk@11在 macOS 上安装的 JDK 位于/opt/homebrew/opt/openjdk@11/libexec/openjdk.jdk,但java -version仍调用系统自带的 JDK 8,因为/usr/bin/java是符号链接,未更新。

正确做法是手动解压 +update-alternatives(Linux)或jenv(macOS)统一管理,这样既能精确控制版本,又能避免包管理器升级时意外覆盖。

4.1 Ubuntu/Debian:Tar.gz 解压 + update-alternatives 配置

步骤 1:下载并解压到/opt/java

# 创建标准目录 sudo mkdir -p /opt/java # 下载 Temurin JDK 11(用 curl 替代浏览器下载) curl -L https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.22%2B7/OpenJDK11U-jdk_x64_linux_hotspot_11.0.22_7.tar.gz \ -o /tmp/jdk-11.0.22.tar.gz # 解压到 /opt/java,重命名为 jdk-11.0.22 sudo tar -xzf /tmp/jdk-11.0.22.tar.gz -C /opt/java sudo mv /opt/java/jdk-11.0.22+7-hotspot /opt/java/jdk-11.0.22

步骤 2:注册到 alternatives 系统

# 将 java、javac、jar 等命令注册为 alternatives 选项 sudo update-alternatives --install /usr/bin/java java /opt/java/jdk-11.0.22/bin/java 110 \ --slave /usr/bin/javac javac /opt/java/jdk-11.0.22/bin/javac \ --slave /usr/bin/jar jar /opt/java/jdk-11.0.22/bin/jar \ --slave /usr/bin/javadoc javadoc /opt/java/jdk-11.0.22/bin/javadoc # 配置默认版本(交互式选择) sudo update-alternatives --config java # 终端会列出所有已注册的 Java 版本,输入对应编号选择 JDK 11

步骤 3:设置 JAVA_HOME(全局生效)

# 编辑系统级环境变量 echo 'export JAVA_HOME=/opt/java/jdk-11.0.22' | sudo tee -a /etc/environment echo 'export PATH=$JAVA_HOME/bin:$PATH' | sudo tee -a /etc/environment # 重载环境变量(对新登录用户生效) source /etc/environment

验证:

java -version # 应显示 11.0.22 echo $JAVA_HOME # 应显示 /opt/java/jdk-11.0.22

4.2 macOS:Homebrew 安装 + jenv 切换(解决多版本冲突)

macOS 的痛点在于系统自带/usr/bin/java是 Apple 提供的 JDK 8,且无法删除。brew install openjdk@11安装后,java -version仍显示 1.8,因为 shell 优先使用/usr/bin下的命令。解决方案是用jenv工具管理多个 JDK,并将jenv的shims目录置于PATH最前。

步骤 1:安装 jenv

# 用 Homebrew 安装 jenv brew install jenv # 将 jenv 初始化加入 shell 配置(zsh 用户) echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc echo 'eval "$(jenv init -)"' >> ~/.zshrc source ~/.zshrc

步骤 2:添加 JDK 11 到 jenv

# 查看 brew 安装的 JDK 11 路径 brew --prefix openjdk@11 # 输出类似:/opt/homebrew/opt/openjdk@11 # 将其添加到 jenv(路径末尾必须是 jdk 的根目录) jenv add /opt/homebrew/opt/openjdk@11/libexec/openjdk.jdk/Contents/Home # 输出:openjdk64-11.0.22 added # 设置全局默认版本 jenv global openjdk64-11.0.22

步骤 3:验证与切换

java -version # 现在显示 11.0.22 # 如需临时切换到 JDK 17,执行: jenv shell openjdk64-17.0.10 java -version # 显示 17.0.10 # 退出当前 shell 即恢复全局版本

注意:jenv的shell命令只对当前终端会话生效,global命令影响所有新终端。如果项目需要特定 JDK 版本,可在项目根目录创建.java-version文件,写入11.0.22,jenv会自动识别并切换。

5. JDK 11 环境变量配置失败的终极排查指南:从命令行到 IDE 全链路验证

配置完环境变量,java -version显示正确,但 IntelliJ IDEA 仍报Project SDK is not defined,或者 Maven 构建失败,说明问题不在 JDK 本身,而在工具链对环境变量的继承机制差异。下面是一套覆盖全场景的排查流程,按顺序执行,99% 的问题都能定位。

5.1 第一层:命令行基础验证(排除系统级错误)

打开终端(Windows CMD/PowerShell,Linux/macOS Terminal),逐行执行:

# 1. 检查 JAVA_HOME 是否被正确读取 echo $JAVA_HOME # Linux/macOS echo %JAVA_HOME% # Windows # 2. 检查 PATH 是否包含 JAVA_HOME/bin echo $PATH | tr ':' '\n' | grep -i java # Linux/macOS echo %PATH% | findstr java # Windows # 3. 直接调用 JDK 二进制文件(绕过 PATH) $JAVA_HOME/bin/java -version # Linux/macOS %JAVA_HOME%\bin\java.exe -version # Windows # 4. 检查 java 命令的实际路径 which java # Linux/macOS where java # Windows
  • 如果echo $JAVA_HOME为空,说明环境变量未生效,检查是用户变量还是系统变量,是否重启终端;
  • 如果which java返回/usr/bin/java,但$JAVA_HOME/bin/java -version显示 11,则说明PATH顺序错误,/usr/bin在$JAVA_HOME/bin前;
  • 如果$JAVA_HOME/bin/java -version报错No such file or directory,说明JAVA_HOME路径错误,或bin目录不存在。

5.2 第二层:IDE 集成验证(IntelliJ IDEA / VS Code)

IntelliJ IDEA:

  • File → Project Structure → Project:Project SDK应显示11 (java version "11.0.22");
  • 如果显示No SDK,点击New → JDK,手动选择D:\dev\jdk-11.0.22(Windows)或/opt/java/jdk-11.0.22(Linux);
  • 关键设置:File → Settings → Build → Build Tools → Maven → Importing,勾选JDK for importer,并选择同一 JDK;否则 Maven 导入时仍用旧版本。

VS Code + Extension Pack for Java:

  • 打开命令面板(Ctrl+Shift+P),输入Java: Configure Java Runtime;
  • 在Java Configuration Overview页面,Java Home应指向 JDK 11 路径;
  • 如果显示Not found,点击Add JDK,浏览到D:\dev\jdk-11.0.22;
  • 重启 VS Code,打开 Java 文件,状态栏应显示Java 11。

5.3 第三层:构建工具专项排查(Maven / Gradle)

Maven:

  • 检查mvn -v输出的Java version是否为 11;
  • 如果不是,编辑apache-maven-3.9.6\conf\settings.xml,在<profiles>内添加:
    <profile> <id>jdk-11</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> <maven.compiler.release>11</maven.compiler.release> </properties> </profile>
  • 运行mvn clean compile -X(-X开启 debug),查看日志中Using Java version行。

Gradle:

  • 检查项目根目录gradle.properties,确认无org.gradle.java.home覆盖;
  • 在build.gradle中显式指定:
    java { toolchain { languageVersion = JavaLanguageVersion.of(11) } }
  • 运行./gradlew --version,JVM行应显示 JDK 11 路径。

5.4 第四层:容器与 CI/CD 验证(Docker / GitHub Actions)

Dockerfile 示例(最小化镜像):

# 使用 Temurin 官方镜像,非 Ubuntu 基础镜像 FROM eclipse/temurin:11-jre-focal # 复制应用 jar COPY target/app.jar /app.jar # 指定启动命令 ENTRYPOINT ["java","-jar","/app.jar"]
  • 验证:docker build -t myapp . && docker run --rm myapp java -version
  • 错误示范:FROM ubuntu:22.04 RUN apt update && apt install -y openjdk-11-jdk—— 镜像体积大 300MB,且apt安装的 JDK 可能缺少jmods。

GitHub Actions workflow:

jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Set up JDK 11 uses: actions/setup-java@v4 with: java-version: '11' distribution: 'temurin' # 明确指定 Temurin,非默认 Zulu - name: Build with Maven run: mvn -B clean package --file pom.xml
  • 关键点:distribution: 'temurin'确保使用 Eclipse Temurin,避免 GitHub 默认的 Zulu JDK 出现 TLS 兼容问题。

6. JDK 11 多版本共存实战:如何在一台机器上自由切换 JDK 11 和 JDK 21?

企业项目常面临“老系统用 JDK 11,新模块用 JDK 21”的需求。强行统一版本会导致:

  • JDK 11 项目编译 JDK 21 的字节码(major version 65),运行时报UnsupportedClassVersionError;
  • JDK 21 项目调用 JDK 11 的javax.xml.bind(已移除),编译失败;
  • CI/CD 流水线需为不同分支指定不同 JDK,配置复杂。

解决方案不是卸载重装,而是建立版本隔离 + 工具链自动感知。Windows 用sdkman(WSL)或批处理脚本,Linux/macOS 用jenv,IDE 用项目级 SDK 绑定。

6.1 Windows WSL2 环境:用 sdkman 统一管理(推荐)

WSL2 是 Windows 上最接近原生 Linux 的开发环境。在 WSL2 中安装sdkman,可无缝管理 JDK、Maven、Gradle 等工具链。

# 在 WSL2 Ubuntu 中执行 curl -s "https://get.sdkman.io" | bash source "$HOME/.sdkman/bin/sdkman-init.sh" # 安装 JDK 11 和 JDK 21 sdk install java 11.0.22-tem sdk install java 21.0.2-tem # 设置默认版本 sdk default java 11.0.22-tem # 为特定项目切换(进入项目目录后执行) cd /home/user/project-jdk11 sdk use java 11.0.22-tem cd /home/user/project-jdk21 sdk use java 21.0.2-tem

sdkman的优势:

  • sdk use命令会自动修改当前 shell 的JAVA_HOME和PATH,且不影响其他终端;
  • 支持.sdkmanrc文件,项目根目录放此文件,内容为java=11.0.22-tem,进入目录自动切换;
  • sdk list java可查看所有可用版本,包括 GraalVM、Zulu、Corretto 等。

6.2 IntelliJ IDEA 项目级 JDK 绑定(最实用)

无需全局切换,每个项目独立指定 JDK,这才是企业开发的标准实践。

操作步骤:

  • 打开项目 →File → Project Structure → Project:
    • Project SDK:点击New → JDK,选择D:\dev\jdk-11.0.22;
    • Project language level:设为11;
  • File → Project Structure → Modules:
    • 选中模块 →Sources标签页 →Language level设为11;
  • File → Settings → Build → Compiler → Java Compiler:
    • Project bytecode version设为11;
    • Per-module bytecode version勾选,确保各模块独立设置。

这样,即使系统JAVA_HOME是 JDK 21,该项目也强制使用 JDK 11 编译和运行。新建项目时,IDEA 会记住上次选择的 JDK,大幅减少重复配置。

6.3 Maven Toolchains:让 Maven 构建自动匹配 JDK 版本

当一个父 POM 管理多个子模块,部分模块需 JDK 11,部分需 JDK 21 时,toolchains.xml是官方推荐方案。

步骤:

  1. 在~/.m2/toolchains.xml创建文件:
    <?xml version="1.0" encoding="UTF-8"?> <toolchains> <toolchain> <type>jdk</type> <provides> <version>11</version> </provides> <configuration> <jdkHome>D:\dev\jdk-11.0.22</jdkHome> </configuration> </toolchain> <toolchain> <type>jdk</type> <provides> <version>21</version> </provides> <configuration> <jdkHome>D:\dev\jdk-21.0.2</jdkHome> </configuration> </toolchain> </toolchains>
  2. 在子模块pom.xml中指定:
    <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.11.0</version> <configuration> <fork>true</fork> <toolchains> <jdk> <version>11</version> </jdk> </toolchains> </configuration> </plugin>

Maven 会自动根据toolchains.xml中的jdkHome路径调用对应 JDK,无需修改系统环境变量。

我在某银行核心系统升级项目中,用此方案实现了“JDK 11 的交易引擎”和“JDK 21 的风控模型服务”在同一套 CI 流水线中并行构建,零配置冲突。关键点是toolchains.xml必须放在用户家目录~/.m2/,且pom.xml中的<version>必须与toolchains.xml中的<version>完全一致(包括11和11.0.22的区别)。

7. JDK 11 安装后的必做验证清单:5 分钟确认环境 100% 可用

完成安装和配置后,别急着写代码。用这 5 个命令,5 分钟内完成全维度验证,确保环境真正就绪:

7.1 基础命令验证(1 分钟)

# 1. JDK 版本与供应商 java -version # 应显示:openjdk version "11.0.22" 2024-01-16 # OpenJDK Runtime Environment Temurin-11.0.22+7 (build 11.0.22+7-LTS) # 2. 编译器版本(确认 javac 可用) javac -version # 应显示:javac 11.0.22 # 3. JVM 参数检查(验证 GC 和 TLS) java -XshowSettings:vm -version 2>&1 | grep -E "(GC|TLS)" # 应包含:-XX:+UseG1GC, -Djdk.tls.client.protocols=TLSv1.2,TLSv1.3

7.2 开发能力验证(2 分钟)

# 4. 编译并运行 Hello World(测试 JDK 完整性) echo "public class Hello { public static void main(String[] args) { System.out.println(\"Hello JDK 11\"); } }" > Hello.java javac Hello.java java Hello # 输出:Hello JDK 11 # 5. 模块化验证(JDK 11 核心特性) java --list-modules | head -5 # 应列出 java.base, java.logging, java.desktop 等模块名 java -p . -m hello/hello.Hello # (需先创建模块化项目,此处略)

7.3 工具链集成验证(2 分钟)

# 6. Maven 集成(假设已安装 Maven) mvn -v | grep "Java version" # 应显示:Java version: 11.0.22, vendor: Eclipse Adoptium, ... # 7. Git 钩子验证(如 pre-commit 用 Java 脚本) git init test-repo && cd test-repo echo '#!/bin/sh\njava -version' > pre-commit chmod +x pre-commit git add pre-commit && git commit -m "test" # 应输出 JDK 11 版本信息 # 8. Docker 镜像验证(本地构建) echo 'FROM eclipse/temurin:11-jre-focal\nCMD ["java", "-version"]' > Dockerfile docker build -t jdk11-test . docker run --rm jdk11-test # 输出:openjdk version "11.0.22" ...

最后提醒:JDK 11 的java.timeAPI、var局部变量、HttpClient新 API 都是日常开发高频使用特性。建议立即写一个 10 行代码的小 Demo 测试:

import java.net.http.HttpClient; import java.time.LocalDate; var client = HttpClient.newHttpClient(); var today = LocalDate.now(); System.out.println("Today: " + today + ", HTTP client: " + client);
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/1 4:16:21

基于Java的搜索引擎设计与实现:从Lucene到中文分词实战

简介&#xff1a;基于Java的搜索引擎设计与实现毕业设计资源包&#xff0c;定位清晰&#xff1a;面向计算机相关专业高校学生、教师及从业者&#xff0c;可直接用于毕业设计、课程设计或项目立项初期演示&#xff0c;也是Java Web与搜索技术进阶的参考样本。包内代码完整、资料…

作者头像 李华
网站建设 2026/10/1 4:16:20

MoE显存与计算开销四阶段手算指南

1. 这不是“又一篇MoE科普”&#xff0c;而是一份能让你真正看懂计算开销的实操笔记我做AI Infra方向的工程支持快六年了&#xff0c;从最早用PyTorch手写分布式训练脚本&#xff0c;到后来参与多个大模型推理服务框架的落地&#xff0c;MoE&#xff08;Mixture of Experts&…

作者头像 李华
网站建设 2026/10/1 4:16:15

微信小程序地方美食分享系统开发全流程:从云开发到上线

接了个帮忙指导的项目&#xff0c;题目是《基于微信小程序的地方美食分享设计与实现任务书》。拿到手翻了几页&#xff0c;任务书写得挺标准&#xff1a;用户登录、美食发布、分类浏览、地图定位、评论点赞&#xff0c;功能一栏一栏列得很清楚&#xff0c;但真到动手开发的时候…

作者头像 李华
网站建设 2026/10/1 4:16:14

医养结合与智慧养老双轮驱动:全生命周期养老运营落地指南

1. 认清双轮驱动的本质&#xff0c;别把养老做成一锤子买卖做养老行业第八年&#xff0c;我越来越意识到一个现实&#xff1a;单纯做养老院&#xff0c;或者单纯做医疗配套&#xff0c;都走不长。真正能形成口碑、形成复购、形成可持续运营的&#xff0c;恰恰是标题里说的这两个…

作者头像 李华
网站建设 2026/10/1 4:13:01

基于势能法的行星齿轮内啮合时变啮合刚度精确计算与MATLAB实现

1. 项目概述与核心需求剖析1.1 这个程序到底解决什么问题行星齿轮传动是很多重载设备的核心&#xff0c;风电齿轮箱、直升机主减速器、机器人关节减速器里全都有它的身影。而做行星齿轮动力学分析时&#xff0c;时变啮合刚度&#xff08;Time-Varying Mesh Stiffness&#xff0…

作者头像 李华
网站建设 2026/10/1 4:12:58

鸿蒙 NEXT 下 Flutter 纯 Dart 包 list_operators 适配指南

最近在折腾鸿蒙 NEXT 上跑 Flutter 的业务迁移&#xff0c;有个纯 Dart 的第三方库 list_operators 让我印象特别深。这个包的核心价值很纯粹&#xff1a;给 List 加上一套基于集合论的链式操作方法&#xff0c;把“交集、差集、对称差、并集”这类数学概念直接变成一行 API。适…

作者头像 李华