Eclipse将java项目导出jar包详解

    本项目没有用到外部JAR包,所有的包都是JDK自带。

1.单击EclipseFile-->Export

         

 

2.在弹出的Export对话框中选择Jave-->JAR file-->next

         

 

3.在打开的JAR Export对话框中勾选上要打包的项目(为了使项目不那么臃肿,没用的文件不必勾选),并勾选下面的Export generated class files and resources. (导出生成的class文件和资源文件)。在Select the export destination:中输入你的jar包要导出的目录(我的目录为桌面)

Ps:

    Export all output folders for checked projects (导出选中项目的所有文件夹)    

    Export java source file and resouces (导出的jar包中包含*.java文件)

    Export refactorings for checked projects (导出的文件中包含重构信息)

4.在Options选项卡中使用默认的Compress the contens of the JAR file(压缩jar包的文件内容)(不勾选也可,只是生成的文件会比较大),并勾选Overwrite existing files without warning。-->next

Ps:

    Add directory entries (增加路径条目)

    作用:1.项目资源文件如xml文件放在项目的package外面,

                        2.项目中使用注解的部分,

           若不勾选该选项这两种情况均会报错。

    Overwrite existing files without warning(不提醒覆盖存在的文件)勾选该项时,若导出目录有同名的jar包则直接覆盖而不提醒你。

         

 

5.进入JAR Packaging Options对话框,使用默认的方式即可,勾选Export class files with compile warnings

PS:

    Export class files with compile errors(导出带有errors的class文件)

    Export class files with compile warnings(导出带有warnings的class文件)

         

 

6.勾选下面的Save the description of this JAR in the workspace(在工作空间保存JAR描述文件)给文件命名,以.jardesc结尾-->next

PS:

    该选项主要是为了方便下次给该项目打包时使用,下次打包时直接在项目中双击生成的.jardesc文件(文件中已经记录了项目的打包配置)不用再像第一次那样逐步配   置,就可以很方便的打包。

         

 

6.进入JAR Manifest Specification对话框,勾选Generate the manifest in the workspace(生成manifest文件)和其下的Save the manifest in the workspace,将生成的manifest.mf文件保存在项目的根目录下

PS:

    若你提前在项目中创建了manifest.mf文件可以勾选Use existing manifest from workspace选项卡

         

 

7.Seal contens中选择默认的Seal some packages,在Select the class of the application entry point中填入包含main()方法的类-->finish

         

 

11.测试导出的jar包是否能够执行:

方法一:双击jar包,若能弹出界面不报错,说明成功。

方法二:进入dos命令行,进入到jar所在路径,运行命令:java -jar 包名.jar,若能弹出界面且不报错,说明导出成功。

至此,导出jar包的过程就结束了。

-----------------------------------------------------------------------

modified @20190814

    近期,我用该方法成功打包java项目,但是在运行的时候报错:java.lang.NoClassDefFoundError:xxx/xxxxxx/xxxxx/,如下:

标题

用反编译工具jd-gui打开该jar包,找到报错中缺失的类点击时无反应,如图:NoClassDefFound中的类和正常的类对比图:

标题
标题

又将jar包导入eclipse中 发现有些文件只有包没有类,如图:

标题

所以大胆推测,可能是打包不完整所致。

解决办法:

打包成可运行的jar文件。

这样打好的包奇迹般的可以运行了,用jd-gui和eclipse打开查看源码也不会发生上面的情况了。有不同见解或补充欢迎留言一起讨论。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值