我的java项目使用javax.mail.jar。因此,在netbeans中,我创建了一个新的文件夹Libraries,将jar文件复制到那里并将其添加到项目属性中。我将此文件夹添加到git,这在netbeans上运行良好。但是当我在另一台机器上使用ant构建项目并使用
运行项目jar时java -jar myproject.jar
我收到错误
线程“main”中的异常java.lang.NoClassDefFoundError: 的javax /邮件/ MessagingException
我可以看到myproject.jar包含依赖库
$jar tf TakServer.jar
库/
库/ javax.mail.jar
...
我不确定出了什么问题。知道如何让它运行吗?
解决方案:正如@Gimby指出的那样,来自Netbeans和ant build的jar文件是不同的。 Netbeans包含一个lib /文件夹,其中包含dist /文件夹中的所有依赖项,其MANIFEST.ML将lib /添加到classpath。根本没有使用主jar中的Libraries文件夹。
答案 0 :(得分:0)
清单中的ClassPath指向jar外部的文件系统。 它不可能在罐子里面使用罐子
https://docs.oracle.com/javase/tutorial/deployment/jar/downman.html