Java 后端面试题库 / 全部题解免费阅读理解原理,有条理地回答

Boot 可执行 JAR 与普通 JAR 有何区别?

查看完整题解

参考回答

直接回答

Boot可执行JAR通常把应用类放在BOOT-INF/classes,依赖放在BOOT-INF/lib,并用Boot启动器处理这种布局;普通库JAR通常直接按包路径放类。普通JAR也能有Main-Class而被java -jar运行,所以区别不应仅说“一个能运行、另一个不能运行”。

讲清原理

可执行归档带有启动信息与嵌套依赖布局,运行时由相应加载机制使用。它通常不适合作为其他项目的普通类路径库,因为消费者不会自动按Boot归档规则查找内部应用类。

需要复用业务代码时,优先拆出普通库模块,再让启动模块依赖它;也可以明确产出不同分类的制品。可执行JAR包含库也不意味着会自动包含外部数据库、配置与业务数据。

Boot可执行布局与普通库类路径不同
Boot可执行布局与普通库类路径不同

例子与易错点

检查归档清单与目录结构,比只看扩展名更可靠。把上传目录或生产密码打进JAR,会使更新与环境隔离更难管理;它们应有独立生命周期。

相关题:第 7 题、第 8 题、第 15 题。

这道题,你掌握得怎么样?

掌握程度由你主动标记,阅读和收藏不会自动改变状态。