欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java在制作jar包时引用第三方jar包的方法

程序员文章站 2024-03-08 08:35:27
我用的是eclipse打包,但在cmd窗口执行的时候报“activemq.jar中没有主清单属性”错误。 在网上搜了下,这个与manifest.mf文件有关,该文件没有定...

我用的是eclipse打包,但在cmd窗口执行的时候报“activemq.jar中没有主清单属性”错误。

在网上搜了下,这个与manifest.mf文件有关,该文件没有定义main方法所在类的路径,利用好压打开jar包,果然如此。里面只有一行

manifest-version: 1.0

需添加main-class。在本例中,添加如下:

main-class: com.luoluo.testuse.activemq.activemqstatemain

上面,有几点需要注意:

1. main-class:和com.luoluo.testuse.activemq.activemqstatemain中间必须有个空格,切记。

2. com.luoluo.testuse.activemq是该类的包名,activemqstatemain是main方法所在的类名,注意:后面不用加上.java或.class。

3. 如果不引用第三方包,需回车让光标到下一行。不然还是会报“activemq.jar中没有主清单属性”错误。如果引用了第三方包,在class-path后面回车,总之,在指定了相关的参数后,均需要回车让光标到下一行。

上面的只是定义了主类,如果引用了第三方包,则会报以下错误:

exception in thread "main" java.lang.noclassdeffounderror: org/apache/activemq/broker/jmx/brokerviewmbean
这时,需在manifest.mf文件中定义class-path。在本例中,添加如下:

class-path: lib/activemq-all-5.12.1.jar

注意:class-path和lib/activemq-all-5.12.1.jar之间也同样需要个空格。

同时,在jar包的同层目录下,新建一个lib文件夹,将activemq-all-5.12.1.jar copy到里面去。

譬如,在本例中,jar包是在c:\users\victor\desktop下,则需在c:\users\victor\desktop目录下新建一个lib文件夹,将相应的第三包放里面去。

Java在制作jar包时引用第三方jar包的方法

前者是打包的jar包,后者是lib文件夹,里面放的是第三方jar包。

最后,manifest.mf文件中的内容如下:

Java在制作jar包时引用第三方jar包的方法

最后执行的结果如下:

Java在制作jar包时引用第三方jar包的方法

以上内容给大家分享的java在制作jar包时引用第三方jar包的方法,希望大家喜欢。