java项目打jar包的两种情况

java项目打jar包的两种情况

本文介绍一下java项目打jar包时的两种情况各怎么操作


方法/步骤

1.  1

一、java项目没有导入第三方jar包

这时候打包就比较简单:

1.  首先在Eclipse中打开项目, 右键点击项目,选择“Export”;

 

2. 选择Java/JAR file,Next;

 

3. Select theresources to export中可以选择你想要包含的项目文件夹,一些不必要的文件夹就无需放进去了,免得增大空间;

这里有几个选项:   

* Export generatedclass files and resources 表示只导出生成的.class文件和其他资源文件   

* Export all outputfolders for checked projects 表示导出选中项目的所有文件夹   

* Export javasource file and resouces 表示导出的jar包中将包含你的源代码*.java,如果你不想泄漏源代码,那么就不要选这项了   

* Exportrefactorings for checked projects 把一些重构的信息文件也包含进去在Select the export destination中选择导出的jar的路径,Next

 

4. 下一页可以选择是否导出那些含有警告warning或者错误errors的*.class文件。一般不用理他,Next

 

5. 下一个页面里可以对项目做一些配置。(如果项目没有引入第三方jar包,这项我们采用系统默认的选项就OK,Main class一定要设置成为你项目的那个主方法入口类)   

* Generate themanifest file是系统帮我们自动生成MANIFEST.MF文件,如果你的项目没有引用其他class-path,那可以选择这一项。   

* Use existingmainfest from workspace。这是可以选择我们自定义的.MF文件,格式如上所写。   

* Seal content。要封装整个jar或者指定的包packet   

* Main class。这里可以选择你的程序入口,将来打包出来的jar就是你这个入口类的执行结果。最后Finish,搞定。 ......



did2.      2

二、java项目有导入第三方Jar包(例如项目中有导入sqlserver2005.jar包)



这时候打包就相对复杂一点:

前面的4步和上面的情况是一样,只是第5步需要选择Use existing mainfest from workspace选项,并选择你自己创建的一个MANIFEST.MF文件,因为系统默认选择的是Generate themanifest file选项,而该选项不会将项目用到得第三方jar包打入到java项目生成的jar包中去。

 

自定义配置文件MANIFEST.MF

首先在项目的根目录下创建一个MANIFEST.MF文件

接下来用记事本打开该文件,并编辑:

例如:

Manifest-Version: 1.0Main-Class:StudentManager_TestClass-Path: sqlserver2005.jar

其中的Manifest-Version是指程序的版本号,Main-Class是指程序的主方法入口类,Class-Path就指定了外来jar包的位置。

 

请注意假设我们的项目打包后为project.jar那么按照上面的定义,应该在 project.jar的同层目录下有相关的jar包(即sqlserver2005.jar,如果有引入多个第三方jar包,则可以用空格隔开)放在里面。否则将会出现Exception in thread "main" java.lang.NoClassDefFoundError的错误。

 

关于第二个的两篇文章:

文章1:

如果自己的java project中需要引用额外的jar包作为资源文件,那么需要自定义配置文件MANIFEST.MF ,例如:
Manifest-Version: 1.0
Class-Path: lib\crimson.jar lib\jbcl.jar lib\junit.jar lib\log4j-1.2.13.jar lib\mysql-connector-java-3.1.13-bin.jar
Main-Class: src.YourMainClassName
其中的Class-Path就指定了外来jar包的位置。请注意假设我们的项目打包后为project.jar,那么按照上面的定义,应该在 project.jar的同层目录下建立一个lib文件夹,并将相关的jar包放在里面(看来是使用第二种方法生成jar包后,再新建lib后直接拷贝到要使用的项目中(不过我按这个方法新建了一个MANIFEST.MF,却发现在在第五步找不到该文件,没法导入。不过参考文章2可以找到,有时间不妨试验一下))。否则将会出现Exception in thread "main" java.lang.NoClassDefFoundError的错误。
注意:如果在Class-Path 中引入比较多的jar包,不要写成一行,不然会报:java.io.IOException : line too long ,需要分多行写,第二行以及下面的第三行、第四行写的时候需要在前面空两格(敲两下空格键)即可
最后介绍一下使用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文件,格式如上所写。
    * Seal content。要封装整个jar或者指定的包packet
    * Main class。这里可以选择你的程序入口,将来打包出来的jar就是你这个入口类的执行结果。
最后Finish 完成

文章2:
  给个链接:http://blog.csdn.net/memray/article/details/17969443


我的实现:

第二个方法试验了一下,因为选择新写的MANIFEST.MF,没办法导入,只好采用了笨办法:

step1:将用第一种方法简单的在第五步自动生成MANIFEST.MF的方法,生成的jar包(尽管这个jar包是依赖其他第三方jar包生成的),这个jar包生成时,其依赖的同一项目中的lib文件(其中包括所依赖的全部jar包)不导出


step2:将jar包导入新项目

step3:将原来依赖的jar包依据原来生成jar包项目的文件结构,拷贝一份到新项目(原来其它的jar包都放在lib文件夹下后又导入到Referenced Libraries,因此直接将lib文件夹拷贝到新项目)

step4:新项目Referenced Libraries中引用step3中的lib文件夹下的jar包

step2-step4如图所示


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值