16boke - 一路博客

详解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不是同一个版本导致的。