eclipse打包含有第三方jar库的jar包

时间:2024-03-10 18:14:02

在打包之前先在工程目录下建立一个名字为MANIFEST.MF

 

 

MANIFEST.MF内容如下:

Manifest-Version: 1.0
Class-Path: ./lib/aopalliance-1.0.0.jar 
  ./lib/cglib-nodep-2.1_2.jar
  ./lib/commons-beanutils-1.7.0.jar 
  ./lib/commons-collections-3.2.1.jar 
  ./lib/commons-dbcp-1.4.jar 
  ./lib/commons-io-1.3.1.jar 
  ./lib/commons-lang-2.3.jar 
  ./lib/commons-lang-2.3.jar 
  ./lib/commons-logging-1.2.jar 
  ./lib/commons-pool-1.3.jar 
  ./lib/fastjson-1.2.8.jar 
  ./lib/log4j-1.2.17.jar 
  ./lib/mybatis-3.2.8.jar 
  ./lib/mybatis-spring-1.2.2.jar 
  ./lib/mysql-connector-java-5.1.34-bin.jar 
  ./lib/spring-aop-4.1.5.RELEASE.jar 
  ./lib/spring-beans-4.1.5.RELEASE.jar 
  ./lib/spring-context-4.1.5.RELEASE.jar 
  ./lib/spring-context-support-4.1.5.RELEASE.jar 
  ./lib/spring-core-4.1.5.RELEASE.jar 
  ./lib/spring-expression-4.1.5.RELEASE.jar 
  ./lib/spring-jdbc-4.1.5.RELEASE.jar 
  ./lib/spring-messaging-4.1.5.RELEASE.jar 
  ./lib/spring-orm-4.1.5.RELEASE.jar 
  ./lib/spring-tx-4.1.5.RELEASE.jar 
  ./lib/spring-web-4.1.5.RELEASE.jar 
  ./lib/spring-webmvc-4.1.5.RELEASE.jar 
  ./lib/spring-websocket-4.1.5.RELEASE.jar
Main-Class: com.demo.QzKhTest

 

Class-Path指的是需要引入的第三方jar包。

Main-Class指的是main函数所在的类。

MANIFEST.MF的书写规则:

Class-path:后面空一格写上所使用的外部jar位置,如果有多个jar不要写成一行,不然会报:java.io.IOException : line too long ,需要分多行写,从第二行起,在每行前面都加两个空格。

 Main-Class:包名+类名,不要加java后缀

注意:写完 Main-Class一定要回车(即最后一行是空白行),否则运行时会出现“jar中没有主清单属性”的错误。

 

最后介绍一下使用Eclipse制作jar包的过程吧
1. 首先在Eclipse中打开项目, 右键点击项目,选择“Export”;
2. 选择Java/JAR file,Next;
3. Select the resources to export中可以选择你想要包含的项目文件夹,一些不必要的文件夹就无需放进去了,免得增大空间;
这里有几个选项:
* Export generated class files and resources 表示只导出生成的.class文件和其他资源文件
* Export all output folders for checked projects 表示导出选中项目的所有文件夹
* Export java source file and resouces 表示导出的jar包中将包含你的源代码*.java,如果你不想泄漏源代码,那么就不要选这项了
* Export refactorings for checked projects 把一些重构的信息文件也包含进去
在Select the export destination中选择导出的jar的路径,Next
4. 下一页可以选择是否导出那些含有警告warning或者错误errors的*.class文件。一般不用理他,Next
5. 下一个页面里可以对项目做一些配置。
* Generate the manifest file是系统帮我们自动生成MANIFEST.MF文件,如果你的项目没有引用其他class-path,那可以选择这一项。
* Use existing mainfest from workspace。这是可以选择我们自定义的.MF文件,格式如上所写。(有第三方JAR包都要选这个)
* Seal content。要封装整个jar或者指定的包packet
* Main class。这里可以选择你的程序入口,将来打包出来的jar就是你这个入口类的执行结果。
最后Finish 完成

 

一般来说,不需要再将第三方包打包进入到jar包里了。因为第三方包必须要在你自己打包的jar外才能引用得到。打包后的文件目录如下:

jar包里的文件结构:

 

在命令行里进入d盘,执行java  -jar SpringDemo.jar即可。