Java在制作jar包时引⽤第三⽅jar包的⽅法
我⽤的是Eclipse打包,但在CMD窗⼝执⾏的时候报“ActiveMQ.jar中没有主清单属性”错误。
在⽹上搜了下,这个与MANIFEST.MF⽂件有关,该⽂件没有定义MAIN⽅法所在类的路径,利⽤好压打开jar包,果然如此。⾥⾯只有⼀⾏
Manifest-Version: 1.0
需添加Main-Class。在本例中,添加如下:
Main-Class: com.luoluo.TestUse.activemq.ActiveMQStateMain
spring怎么读取jar文件上⾯,有⼏点需要注意:
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⽂件夹,将相应的第三包放⾥⾯去。
前者是打包的jar包,后者是lib⽂件夹,⾥⾯放的是第三⽅jar包。
最后,MANIFEST.MF⽂件中的内容如下:
最后执⾏的结果如下:
以上内容给⼤家分享的Java在制作jar包时引⽤第三⽅jar包的⽅法,希望⼤家喜欢。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论