我将尝试将问题归结为一个基本的外部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中的位置?
答案 0 :(得分:0)
您是否尝试过类似“ classpath:path / to / jar / b.jar”之类的路径