網上打包的教程很多, 但是自己動手總歸出現各種各樣的問題,自己總結下:
由於剛剛接觸JAVA,做了一個簡單的java project 項目, 但是包含第三方的jar包, 結果打包的時候就出現問題了。
主要原因是一直報“Exception in thread "main" java.lang.NoClassDefFoundError“的錯誤, 我一開始以為打包的jar包中應該包含第三方的JAR包,結果死活報錯,原來並不是這樣,運行jar包時,會根據 MANIFEST.MF中的Class-Path 的路徑去讀取。
好了,說下打包流程
1. 先看下文檔目錄和最后打包的效果
可以看到,打包完后,第三方jar並不在程序包內。
2. 配置MANIFEST.MF文件,程序打包時會用到。
2.1 在項目下新健一個文件夾
2.1 在該文件夾下新健一個MANIFEST.MF文件, 配置對應的屬性
3. 打包程序, 不包含第三方JAR包
3.1 點擊 file > export
3.2 選擇 jar file, 點擊next
3.3 選擇 項目打包文件,錄入一個生產jar的路徑(只需要項目文件, 不包含第三方jar以及MANIFEST.MF; 同時也不包含.classpath 和.project)
3.4 點擊選擇已經存在的裝配單
3.5 一直到結束
4. 通過java -jar xxx.jar 來運行, 但是這里需要注意要關聯第三方Jar包, 怎么關聯, 會程序會通過 MANIFEST.MF中的Class-Path去尋找。所以最終要運行jar報的結構如下。
作為剛學JAVA的人會有點小折騰。
參考資料
http://www.open-open.com/lib/view/open1397303218919.html
http://www.cnblogs.com/lanxuezaipiao/p/3291641.html
http://bbs.csdn.net/topics/350163956