eclipse打Jar包問題
1、首先,如果你的Java專案中沒有任何第三方包,是十分容易的,只需要通過eclipse的Export就可以按操作一步步執行,如下:
選擇你要匯出的Java專案,右鍵選擇Export,如下圖,選擇JAR file
然後next,next,選擇我們的啟動類,然後finish就好了,當然這是大家都懂,不用寫太多。
2、如果你的Java專案中包含了第三方的Java包,就會碰到和我一樣的問題了,在網上找了一些資料(按照操作一步步進行,但是我還是遇到 java.lang.NoClassDefFoundError問題),不過最終自己還是解決了自己的問題,我們先看一下大家說的解決辦法:
對於有第三方Jar包時
1.我們需要自己建一個MANIFEST.MF檔案
Manifest-Version: 1.0
Class-Path: lib/01.jar lib/02.jar
Main-Class: student.view.LoginChoose
注意:每一項冒號後面的空格
3.(此時你在專案中的匯入的第三方Jar包不用匯出,當然一塊導到你的新Jar包裡也可以,不過沒啥用,因為程式不會用到你匯出的jar包裡面的,這就是我出錯的原因,後面繼續說)按照正常的匯出,但是不要急著使用finish,你要點next一直點到不能點了,因為MANIFEST.MF檔案我們不能使用預設的了,我們需要使用自己寫的MANIFEST.MF檔案了,如圖:
然後匯出即可
3.然後就是我錯誤的原因了,我當時把第三方的Jar包全部匯入我匯出的Jar包裡了,然後我認為MANIFEST.MF檔案裡設定的Jar包路徑如lib/01.jar什麼的,就是我匯出的Jar包中檔案的lib資料夾,結果雙擊Jar包,可想而知,沒反應,命令列視窗執行,java.lang.NoClassDefFoundError
經過測試明白了,原來MANIFEST.MF檔案裡設定的第三方Jar包路徑,是相對於你匯出的Jar包的相對位置,也就是說,例如:第三方Jar包Class-Path:你設定的路徑為lib/01.jar,即是在你匯出的Jar包的位置新建一個lib資料夾,然後裡面放一個01.jar,就可以找到這個包了,就報錯了。總結一句話,Class-Path:使用的是相對路徑,相對於你匯出的Jar包的位置。
當然還有更方便的export方式,網上搜索就可以知道了