2009-12-15 111 views
0

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

有人能告诉我如何解决这个问题吗?

非常感谢。

+1

乔治卢卡斯正在打电话,他想让他的罐子回来。 – 2009-12-15 04:14:41

+1

显示如何将jar放入你的类路径中。另外,你确定jar2真的包含B类吗? A和B的完全合格的类名称是什么,并且是从A到B完全合格的参考? – 2009-12-15 04:15:16

回答

0

我从来没有遇到这是一个问题,但你有没有尝试过在jar1之前在类路径顺序中放置jar2?我认为jar2更有可能没有被正确包含。你可以发布类路径设置吗?另外,你可能想打开jar2(它只是一个zip文件),然后验证你认为的类是否在那里。

2

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

0

我认为在jar1 MANIFEST.MF中包含jar2.jar可能会工作,只要它们在同一个目录中。

0

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

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

Java tutorial有关于如何在jar创建过程中指定Manifest文件的章节。

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

另请检查此link,它提供有关Manifest文件的更多详细信息。

相关问题