You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

新版JDK移除rt.jar后如何使用Java基础类库?

关于rt.jar移除后Java基础类库的引用说明

rt.jar 是Java 8及更早版本JDK/JRE中存储核心运行时类的归档文件,大家熟悉的java.util、java.lang、java.io等所有Java官方提供的基础类,原本都打包在这个文件里。

注:即便是在Java 8及更早版本中,你也不需要手动将rt.jar添加到classpath中——JVM启动时会通过引导类加载器(Bootstrap ClassLoader)自动加载这个文件里的核心类,手动把rt.jar加入classpath反而可能引发类版本冲突、类加载顺序异常等问题。

从Java 9版本开始,官方引入模块化系统(Project Jigsaw),原本整包的rt.jar、tools.jar被正式移除,所有核心类按功能边界拆分到JDK安装目录下jmods文件夹内的各个.jmod模块文件中,其中最核心的java.base模块就包含了java.util、java.lang等最常用的基础类。

编译好的.class文件如何运行

你不需要手动寻找rt.jar的替代文件做额外引用,新版JDK的java运行命令、javac编译命令默认就会加载核心的java.base模块,直接按常规方式执行即可:

# 正常执行主类即可,JVM会自动加载依赖的核心基础类
java 你的主类全限定名

如果你用到了java.sql、java.desktop等非核心的官方基础模块,编译器和JVM也会自动根据代码里的import语句解析加载对应模块,不需要手动配置类路径。

打包可执行jar时如何引用基础类库

核心原则:所有Java官方提供的核心类库,永远不需要你手动打包进自己的jar,也不需要在classpath中配置路径,这些类统一由运行程序所用的JDK/JRE本身提供:

  • 如果打普通非模块化可执行jar,只需要在MANIFEST.MF中配置好Main-Class入口类,Class-Path项仅需配置你项目依赖的第三方类库即可,核心类会由JVM自动加载,不需要额外配置。
  • 如果你用jlink工具制作自定义精简运行时镜像,只需要声明你用到的官方模块(比如仅用基础类就声明java.base,用到Swing界面就加java.desktop),工具会自动把需要的核心模块打包进镜像中,不需要你手动查找对应类文件。

内容的提问来源于stack exchange,提问作者user19468061

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 04:24:22