假设在我的应用程序“MyClass”中,我想在jar1中使用A类,而A类的某些部分依赖于jar2中的某些B类。如果我将jar1和jar2放在我的类路径上并运行MyClass,它仍然会抱怨找不到B类。
有人能告诉我如何解决这个问题吗?
非常感谢。
答案 0 :(得分:3)
使用%CLASSPATH%
命令和java
参数时,-jar
环境变量忽略。使用-classpath
参数或其简写-cp
指定它。或者,您也可以在执行的JAR文件的class-path
文件的MANIFEST.MF
条目中指定它。
答案 1 :(得分:0)
我从未遇到过这个问题,但你是否尝试过将jar2放在jar1之前的类路径顺序?我认为jar2更有可能不被正确包含。你可以发布类路径设置吗?
另外,你可能想要打开jar2(它只是一个zip文件),并确认你认为那里的课程实际上在那里。
答案 2 :(得分:0)
我认为在jar1 MANIFEST.MF
中包含jar2.jar可能会有效,前提是它们位于同一目录中。
答案 3 :(得分:0)
正如其他答案所提到的那样,在您调用的jar的MANIFEST.MF文件中提供所需jar的名称是解决问题的一种方法。
在jar文件(您首先调用的文件)创建期间,您可以指定包含此详细信息的清单文件,以便它与您的jar捆绑在一起。
Java tutorial有一节介绍如何在jar创建过程中指定Manifest文件。
如果您使用Ant作为构建工具,则可以使用Ant任务Manifest来创建清单文件。您可以使用在构建jar的Ant任务中创建的Manifest文件。
另请查看此link,其中提供了有关清单文件的更多详细信息。