参考资料

  1. Hello-World 是一个最简单的 Docker 镜像
  2. Nexus Repository Manager 3(简称Nexus3)是由Sonatype公司开发的一款企业级仓库管理工具
  3. DweebUI是一个基于Stable Diffusion WebUI的轻量级分支
  4. SimpleMindMap 是一款开源的思维导图工具
  5. ROS (Robot Operating System) 简介
  6. Flarum 是一款现代化的开源论坛软件
  7. Docker国内镜像源配置方法
  8. Open Liberty是由IBM开发的开源轻量级Java应用服务器

OpenJDK 详细简介

OpenJDK(Open Java Development Kit)是 Java 平台的开源实现,由 Oracle 和社区共同维护。它是 Java SE(Standard Edition)的官方参考实现,基于 GPLv2 许可证发布。

特点

  1. 开源免费:遵循 GPLv2 许可证,可自由使用和修改。

  2. 跨平台:支持 Windows、Linux、macOS 等操作系统。

  3. 社区驱动:由全球开发者共同维护,更新频繁。

  4. 兼容性:与 Oracle JDK 高度兼容,适合开发和部署 Java 应用。

  5. 模块化:Java 9 引入模块化系统(JPMS),提升可维护性。

最新更新内容及时间

  • 最新版本:OpenJDK 21(LTS 版本)

  • 发布时间:2023 年 9 月

  • 更新内容

    • 虚拟线程(预览功能)

    • 分代 ZGC(垃圾回收器改进)

    • 字符串模板(预览功能)

    • 结构化并发 API

镜像下载地址

官网地址

阅读文档地址

Docker 安装示例

# 使用官方 OpenJDK 镜像
docker pull openjdk:21

# 运行容器并进入交互模式
docker run -it openjdk:21 /bin/bash

# 检查 Java 版本
java -version

YAML 设置教程(以 Maven 项目为例)

# .mvn/jvm.config 示例(设置 JVM 参数)
-Xmx1024m
-Xms256m
-XX:+UseG1GC

常用错误及问题

  1. java.lang.UnsupportedClassVersionError

    • 原因:编译版本高于运行版本。

    • 解决:确保 JDK 版本匹配,或使用 -target 参数指定兼容版本。

  2. 内存不足(OutOfMemoryError

    • 解决:调整 JVM 内存参数(如 -Xmx-Xms)。

  3. NoSuchMethodErrorNoClassDefFoundError

    • 原因:依赖冲突或缺失。

    • 解决:检查类路径,使用 mvn dependency:tree 分析依赖。

  4. SSL 相关错误

    • 解决:更新证书或配置信任库:

      keytool -importcert -alias cacerts -file /path/to/cert -keystore $JAVA_HOME/lib/security/cacerts
  5. Docker 容器时区问题

    • 解决:启动时挂载时区文件:

      docker run -v /etc/localtime:/etc/localtime:ro openjdk:21