如何在制作jar包時引用第三方jar包


我用的是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文件夾,將相應的第三包放里面去。

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

最后,MANIFEST.MF文件中的內容如下:

最后執行的結果如下:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM