不能在我的可执行jar中包含外部jar

时间:2013-08-14 20:00:42

标签: java jar manifest executable-jar

我正在尝试将我的java应用程序转换为可执行jar。

我已经能够将它打包到包含所有类文件的jar中,但仍然无法包含jmf.jar文件。

这是我的目录结构

主要目录

src/                  //A dir
--a.java
--b.java
jmf.jar
Manifest.txt

我的Manifest.txt文件的内容,

Manifest-Version: 1.0 
Ant-Version: Apache Ant 1.7.0  
Main-Class: src/a
Class-Path: .;jmf.jar //also tried ./jmf.jar

通过双击.jar文件,我可以运行main函数,但是当我尝试在 debug 模式下运行jar文件时,第二个函数使用jmf.jar抛出异常,找不到javax.media。这个类在jmf.jar文件中,这使我得出结论,jmf.jar文件没有包含在类路径中。那么我做错了什么?如何制作此可执行文件?

我用来将它转换为jar的命令是,

jar cvfm myJar.jar Manifest.txt src\*.class jmf.jar

2 个答案:

答案 0 :(得分:1)

清单中Class-Path条目引用的jar文件不能位于jar内部,而应位于jar内部,如jar tutorial中所述。

答案 1 :(得分:0)

如果您使用的是JMF,则需要将jmf.jar和jmf.properties包含在与可执行jar相同的目录中