1. 程式人生 > >詳解java版webservice客戶端打包成jar

詳解java版webservice客戶端打包成jar

使用cxf框架來開發的webservice客戶端的普通jar程式如何進行打包呢?以及如何優化打包後的客戶端執行效率呢?

一、使用eclipse進行打包

點專案右鍵,選擇“Export”,選擇“Runnable JAR file”,

clipboard.png

選擇專案執行的main類,就是含有main方法的執行類,

clipboard.png

注意:一定要選擇“Copy required libraries into a sub-folader next to the generated JAR”這一項,意思是將專案所需要的第三方jar包,以及使用POM.xml引入的包都拷貝到一個子資料夾中,其中資料夾名就是生成的jar名。

最終會生成一個jar包,但是這個jar是不可以執行的,需要單獨寫bat或者sh指令碼來執行。

二、生成可執行指令碼

一般專案生成完jar包後需要在jar外修改配置檔案或者修改log4j的日誌配置,主要就是需要修改程式中讀取配置檔案的程式碼,增加可以讀取外部的功能。這裡提供一個思路,執行jar的時候增加一個引數,標識是打包的還是直接在eclipse中執行。如果不傳預設為在eclipse中執行,如果傳則讀取其它指定的路徑下的檔案。

如果是windows平臺,需要寫一個bat檔案,用來執行jar包:

java -server -Xms256m -Xmx512m -jar ./xxx-0.0.1-SNAPSHOT.jar pub

注意:不需要指定第三方jar路徑,因為已經在打包的/META-INF/MANIFEST.MF檔案中了。

三、注意事項

1、還是打包的時候選擇“Copy required libraries into a sub-folader next to the generated JAR”

2、執行的時候如是報錯:“java.lang.ClassNotFoundException: com.sun.tools.internal.xjc.api.XJC”需要將本地jdk安裝目錄中lib/tools.jar新增到jar目錄下。但是具我分析應該是打包選擇的jdk與執行的jdk不是同一個版本導致的。