我们的项目是jetty作为web内嵌式容器的,通过main方法去调用jetty,这样web容器就是程序的一部分.将项目打包成一个可执行jar包的话项目的可移植性就非常好了.
我先试着通过myeclipse7.0里附带的export->running jar的功能去打了一个jar包,可是双击不能运行,于是打开命令行去调用它,看是什么错误.做法是:将当前目录切换到jar包目录下,执行命令:java -jar project_name.jar.提示spring的命名空间出了问题.找了好久就是改不对.
于是新的办法出现了:通过maven打的包(很小,不包含其它引用的jar),修改文件:MANIFEST.MF
添加两个配置:
1.Main-Class: com.vanda.brws.standalone.Main
2.Class-Path: ./activation-1.1.jar ./ant-1.6.5.jar ./aopalliance-1.0.jar ./aopjrt-1.6.6.jar ./aopjweaver-1.6.6.jar ./asm-3.1.jar
./brws.jar ./c3p0-0.9.1.2.jar ./cglib-2.2.jar ./commons-el-1.0.jar ./commons-jexl-1.1.jar ./commons-lang-2.4.jar ...
这样,可执行的jar包便可以用了.
注意事项:
1.Class-Path的相关jar包的路径是相对当前jar包的,'.'代表当前路径. 各个jar包要用空格分开,各项配置要打回车.如果jar包太长会报column太长,解决办法是:将jar用回车分开,当然空格别少了.
执行时,双击主jar包或者通过命令行调用(java -jar ***.jar),当然,你也可以写一个bat或者sh文件.
如果需要可以将这些jar包(可能还有额外的配置或日志文件)打一个大的jar包.