網上打包的教程不少, 可是本身動手總歸出現各類各樣的問題,本身總結下:html
因爲剛剛接觸JAVA,作了一個簡單的java project 項目, 可是包含第三方的jar包, 結果打包的時候就出現問題了。 java
主要緣由是一直報「Exception in thread "main" java.lang.NoClassDefFoundError「的錯誤, 我一開始覺得打包的jar包中應該包含第三方的JAR包,結果死活報錯,原來並非這樣,運行jar包時,會根據 MANIFEST.MF中的Class-Path 的路徑去讀取。spa
好了,說下打包流程.net
1. 先看下文檔目錄和最後打包的效果htm
能夠看到,打包完後,第三方jar並不在程序包內。blog
2. 配置MANIFEST.MF文件,程序打包時會用到。教程
2.1 在項目下新健一個文件夾ip
2.1 在該文件夾下新健一個MANIFEST.MF文件, 配置對應的屬性文檔
3. 打包程序, 不包含第三方JAR包io
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