eclipse导出jar包有两种方式,一种是直接导出jar file,一种是导出Runnable Jar file。
二者区别:
直接导出jar file:仅仅是把.class文件打包了,其所依赖的其他jar包未进行打包,执行该打包后的文件需要加上第三方jar包。比如java -cp .;ch04.jar;lib01.jar com.thnkjava.ch04,其中ch04.jar为打包的jar包,lib01.jar是依赖的第三方包,执行入口是com.thnkjava.ch04类中的main函数。也可以在导出时指明入口类。
导出Runnable jar file:可以导出class文件,也可以将其依赖的所有第三方包一起导出。生成runnable jar file时,有两个选项,Extract required libraries into generated JAR 和 package equired libraries into generated JAR。 前者是把你用到的.class 文件提取出来,后者则是把你所需要的所有jar包都打进一个包里。导出时可以指定入口函数类,具体在导出的Manifest.mf文件中。执行该jar包时,可以直接输入java -jar ch04.jar即可,此时会自动调用Manifest.mf文件中的入口函数类,其依赖的包如果是已经打包在ch04.jar包中,则不需要在Manifest.mf文件中再次指明。
1.导出jar file
首先,右击选择指定的项目,找到Export选项,点击后如下如:
然后选择“Jar file”:
接着点击“Next->”:
其中手动创建的Manifest.mf文件如下图,格式必须是按照此格式。
上面Manifest.mf文件内容如下:
Manifest-Version: 1.0
Class-Path: . meeting_cmd_lib/netty-3.8.0.Final.jar meeting_cmd_lib/gs
on-2.2.4.jar meeting_cmd_lib/mysql-connector-java-5.1.6-bin.jar meeti
ng_cmd_lib/httpcore-4.2.2.jar meeting_cmd_lib/commons-logging-1.1.1.j
ar meeting_cmd_lib/commons-logging-api-1.1.jar meeting_cmd_lib/log4j-
1.2.17.jar meeting_cmd_lib/antlr-2.7.6.jar meeting_cmd_lib/asm-attrs.
jar meeting_cmd_lib/asm.jar meeting_cmd_lib/c3p0-0.9.1.2.jar meeting_
cmd_lib/cglib-2.1.3.jar meeting_cmd_lib/commons-collections-2.1.1.jar
meeting_cmd_lib/dom4j-1.6.1.jar meeting_cmd_lib/ehcache-1.2.3.jar me
eting_cmd_lib/ejb3-persistence.jar meeting_cmd_lib/hibernate-annotati
ons.jar meeting_cmd_lib/hibernate-commons-annotations.jar meeting_cmd
_lib/hibernate-entitymanager.jar meeting_cmd_lib/hibernate-tools.jar
meeting_cmd_lib/hibernate3.jar meeting_cmd_lib/javassist.jar meeting_
cmd_lib/jdbc2_0-stdext.jar meeting_cmd_lib/jta.jar meeting_cmd_lib/jt
idy-r8-0801.jar
Main-Class: mand.CmdDispacth
-----------此处必须有换行,引用的各jar包之间必须用空格分隔,否则解析会出错。
2.生成Runnable jar file
右击选择项目后,点击“Export”->"Runnable Jar file"。即可跳到下面页面,选择入口函数和保存路径及提取方式后,点击“Finish”即可生成。此处的Library handling 选择第一项,表示会将其中的第三方包一起打包。