出于这个问题范围之外的原因,我有两个罐子。
Jar1:project/project.jar
,它是一个弹簧靴子,包含A类。
Jar2:mock/project-mock.jar
,这是一个包含B类的罐子。
project-mock.jar
没有主类,也不能独立运行。
B类扩展了A类。
我正在尝试使用以下命令一起运行这些jars
java -cp project/project.jar:mock/project-mock.jar org.springframework.boot.loader.JarLauncher
当我运行以上命令时,spring boot jar开始初始化,但随后出现异常:
problem with class file or dependent class; nested exception is java.lang.NoClassDefFoundError: com/project/Class A
这是与我如何尝试启动应用程序有关的问题,还是与如何解决classpath问题以将jar正确设置在同一classpath上有关的问题?
编辑:我不认为这与Why am I getting a NoClassDefFoundError in Java?是同一个问题,因为我认为在命令行上添加两个jar会将它们放在相同的类路径中。如果不是这种情况,那就是问题所在,但我想知道为什么然后才能解决。 在Edit上进行编辑:进一步查看抛出的异常,有一个嵌套的异常java.lang.ClassNotFoundException,它使我回到类路径问题上,而不是第一次无法正确加载类。