首页 文章

Java:从jar加载类和引用的jar

提问于
浏览
1

想象一下,有一个jar(名为 lib.jar ),它包含一个类和清单文件 .

该类是MyLibClass1 . MyLibClass1类包含单个公共静态方法execute() .

清单文件有一行"Class-Path:"引用其他jar文件( jar1.jarjar2.jar

MANIFEST.MF位于 lib.jar 的META-INF中,包含:

Class-Path:jar1.jar jar2.jar

这些jar在一些项目MyProject中使用,并且位于它的libs目录中 .

该项目有一个Main类main方法main,只有一行:

MyLibClass1.execute();

问题是,当我尝试调用MyProject的Main类时,JVM说它无法在 lib.jar 中找到 is 的MyLibClass1类 .

java -cp libs / *; bin Main

有什么建议?

UPDATE:

java -version
java版本"1.6.0_24"
Java(TM)SE运行时环境(版本1.6.0_24-b07)
Java HotSpot(TM)64位服务器VM(内置19.1-b02,混合模式)

libs文件夹包含 lib.jarjar1.jarjar2.jar

关于Main.class在哪里有一个很好的评论 . 实际上是bin目录中的类,所以我必须更改java执行命令 .

java -cp libs / *; bin Main

3 回答

  • 0

    尝试在“bin”之后添加分号 .

    java -cp libs/*;bin; Main

  • 0

    我通过从lib.jar文件中删除manifest来解决了这个问题 .

    因此有一个令人困惑的结论: "Class-Path:" of a jar hides the classes of a jar itself.

    欢迎反驳这一说法 .

  • 0

    如果当前目录是 bin 那么你应该运行 java -cp ".;../libs/*" Main

相关问题