如何使用一个依赖于另一个jar的jar

假设在我的应用程序“MyClass”中,我想在jar1中使用A类,而A类的某些部分依赖于jar2中的某个B类。 如果我将jar1和jar2放在我的类路径上并运行MyClass,它仍然会抱怨无法找到B类。

谁能告诉我如何解决这个问题?

非常感谢。

java命令与-jar参数一起使用时,将忽略 %CLASSPATH%环境变量。 使用-classpath参数或其简写-cp指定它。 或者,您也可以在执行的JAR文件的MANIFEST.MF文件的class-path条目中指定它。

我从来没有遇到过这个问题,但你是否尝试过将jar2放在jar1之前的类路径顺序? 我认为jar2更有可能不被正确包含。 你可以发布类路径设置吗?

此外,您可能想要打开jar2(它只是一个zip文件),并validation您认为其中的类实际上在那里。

我认为在jar1 MANIFEST.MF中包含jar2.jar可能会有效,前提是它们位于同一目录中。

正如其他答案所提到的那样,在您调用的jar的MANIFEST.MF文件中提供所需jar的名称是解决问题的一种方法。

在jar文件(您首先调用的文件)创建期间,您可以指定包含此详细信息的清单文件,以便它与您的jar捆绑在一起。

Java教程有一节介绍如何在jar创建过程中指定Manifest文件。

如果您使用Ant作为构建工具,则可以使用Ant任务清单来创建清单文件。 您可以使用在构建jar的Ant任务中创建的Manifest文件。

另请查看此链接 ,其中提供了有关清单文件的更多详细信息。