【发布时间】:2014-01-30 17:44:54
【问题描述】:
我正在构建的 jar 文件有一个奇怪的问题,我想知道是否有人可以向我指出任何手册或知识库文章,这将解释它...... 无论如何,我的应用程序正在引用与我的输出 jar 位于同一目录中的外部 iText-2.0.8.jar: OUT_DIR: - 我的.jar - iText-2.0.8.jar my.jar 中的主类是 com.company.Main 并且每当我尝试运行时
java -cp "my.jar;iText-2.0.8.jar" com.company.Main
我的应用程序运行良好。但是一旦我尝试运行:
java -jar my.jar
我收到来自 iText-2.0.8.jar 的类的 NoClassDefFoundError 这是 my.jar 的清单:
Manifest-Version: 1.0
Main-Class: com.company.Main
Class-Path: iText-2.0.8.jar
Name: rabbitmq-client
Specification-Title: AMQP
Specification-Version: 0.9.1
Specification-Vendor: AMQP Working Group (www.amqp.org)
Implementation-Title: RabbitMQ
Implementation-Version: 3.1.3
Implementation-Vendor: Rabbit Technologies Ltd. (www.rabbitmq.com)
这是否与 iText jar 也可运行有关(它有自己的主类)?另一方面,NoClassDefFoundError 清楚地表明类路径错误...
【问题讨论】:
-
您是如何生成此清单的?手动还是通过一些构建工具?
-
我正在使用 Intellij IDEA 和一个大型 Ant build.xml 文件。清单部分如下所示:
标签: java jar classpath itext manifest.mf