我有一个外部库(只有一个名为 org.vinay.dep.DependedClass 的类文件)。它位于其包目录结构中,并且目录 org 位于桌面上。
我有一个名为 a.jar 的 jar,它依赖于我的外部库。
执行jar -tf a.jar
给出以下输出,
META-INF/
META-INF/MANIFEST.MF
com/
com/os/
com/os/hw/
com/os/hw/HelloWorld.class
com/os/hw/HwUtil.class
我尝试以两种方式运行 jar
java -classpath C:/Users/vinay/Desktop -jar a.jar
manifest.mf 条目为Manifest-Version: 1.0
Created-By: 1.6.0_05 (Sun Microsystems Inc.)
Main-Class: com.os.hw.HelloWorld并得到了 DependedClass 的NoClassDefFoundError
java -jar a.jar
如下更改清单条目后清单版本:1.0
创建者:1.6.0_05 (Sun Microsystems Inc.)
主类:com.os.hw.HelloWorld
类路径:C:/Users/vinay/Desktop但是这次它为HelloWorld 类本身抛出了 NoClassDefFoundError
当我将外部库打包到 jar 中并在清单文件中使用 jar 名称作为 Class-Path 条目时,它可以工作。有没有办法在不将外部库打包到 jar 的情况下解决这个问题?