如何在清单中链接外部Spring Boot JAR(NoClassDefFoundError)

时间:2018-08-09 13:38:00

标签: java spring-boot jar manifest noclassdeffounderror

我将尝试将问题归结为一个基本的外部JAR链接问题,但未能为其找到示例/答案。我在同一目录中有2个JAR,a.jar和b.jar。 a.jar的MANIFEST.MF包含:Class-Path: b.jar

本质上,我想运行一个a.jar,其中包含最少的应用程序级类,但链接到具有所有其他必要类的大型外部b.jar。但是运行命令java -jar a.jar会导致:Exception in thread "main" java.lang.NoClassDefFoundError: com/example/MainApp

不确定是否相关,但是b.jar实际上是Spring Boot JAR,其中包含com/example/MainApp.class中的预期类(例如BOOT-INF/classes)。 b.jar的MANIFEST.MF包含:Spring-Boot-Classes: BOOT-INF/classes/

我想知道是否有一种简单的方法来实现这一目标?让我知道是否需要更多详细信息来诊断问题。

更新: 我将com/example/MainApp.class文件复制到b.jar的基本目录中,并找到了该类!但是我想保留原始文件。因此,我想改写这个问题:您如何指定类在JAR中的位置?

1 个答案:

答案 0 :(得分:0)

您是否尝试过类似“ classpath:path / to / jar / b.jar”之类的路径