eclipse 导出可运行jar包时三种Library handling的区别
我们在eclipse中打包一个可运行的jar包的时候,Library handing中的选项有下面三种:
那么eclipse中Runnable JAR file的这三种打包方式有什么区别呢?
第一个Extract required libraries into generated JAR
意思是将依赖的jar解压出来变成class丢进你生成的jar里面;
第二个Package required libraries into generated JAR
意思是将依赖的jar不解压,直接放进你生成的jar里面;
第三个Copy required libraries into a sub-folder next to the generated JAR
意思是将依赖的jar放到你生成jar的同级目录下的”xxx_lib”文件夹里面。
下面通过一个例子来说明,现在我这里有一个工程TestExport
,这个Java工程的结构如下所示
现在Test这个类中,引用了一个我自己写的外部的jar包Command.jar
。我们现在来使用上述三种方式来导出看看效果怎样
使用第一种方式导出(Extract required libraries into generated JAR
)
导出Runable Jar file的方法
选择要导出的工程右键,选Export
.
选择Java-->Runable JAR file-->Next
在Launch configuration
中选择程序的入口,也就是main方法所在的类。
在Export destination
中选择导出的位置,点击Browse...
选出你要导出的位置即可。
然后在Library handing
中选择Extract required libraries into generated JAR
解压缩依赖包模式
点击Finish
就可导出了
导出后找到该jar包用压缩工具打开
可以看到里面的内容
可以看到第一目录是我们工程的包目录,里面的内容如下。
第二个目录是配置文件目录,这目录是一定会有的不必管他。
第三目录是是解压依赖包Command.jar的到的,里面的内容如下。
使用第二种方式Runable JAR file
导出方法与前面的类似,不再说了。
这次选择以第二种方式导出,并且保存到另一个目录中,为了避免混乱。
接着还是,找到这个jar,然后用压缩工具打开。
打开结果如下
可以看到这种方式,是吧外部依赖包Comman.jar复制到我们导出的可执行jar包Test.jar包中。而不是和上面一样解压Command.jar包到Test.jar中。
使用第三种方式导出Runable JAR file
还是一样导出到另一个目录中
找到导出的这个jar,然后压缩工具打开
可以看到现在Test.jar的同级目录下多了个文件夹Test_lib
,Test_lib
中存放的是外部的依赖包Command.jar
而Test.jar中则干干净净,只有原来工程中的文件和配置文件
配置文件中指明了依赖包Command.jar的路径在同级目录下
如果我们把Test.jar剪切到其他地方去,这样Test.jar,就找不到Test_lib中的依赖包,这样将会运行错误。
例如这个吧Test.jar剪切到上级目录中,在cmd中输入java -jar Test.jar
运行程序,此时程序会抛出异常:
Exception in thread "main" java.lang.NoClassDefFoundError: system/call/cmd/Command
这三者的区别就是这样
eclipse 导出可运行jar包时三种Library handling的区别相关推荐
- Eclipse导出可执行Jar包及相关资源路径的处理
1. Eclipse导出可执行jar包方法: 项目上右击-->Export-->Runnable JAR file-->选择main方法所在的类,选择导出路径,勾选"Pac ...
- 运行jar包时指定prod时报异常
1 问题 运行jar包时指定prod时报异常,异常如下: PS D:\Workspace\ZJ\dataPlatform\dataPlatform-api\target> java -jar . ...
- Eclipse下导入外部jar包的3种方式
转载自 Eclipse下导入外部jar包的3种方式 我们在用Eclipse开发程序的时候,经常要用到第三方jar包.引入jar包不是一个小问题,由于jar包位置不清楚,而浪费时间.下面配图说明3 ...
- Linux 运行jar包的几种方式
nohup java -jar wechat-push-0.0.1-SNAPSHOT.jar > wechat-push-0.0.1.out 2>&1 & 一.Linux ...
- 全网最全Linux 运行jar包的几种方式
一.Linux 运行jar包的几种方式 方式一: java -jar xxx.jar 最常用的启动jar包命令,特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 ...
- Intellij IDEA 添加jar包的三种方式
Intellij IDEA 添加jar包的三种方式 inzaghihalo https://blog.csdn.net/superinzaghi747/article/details/80539095 ...
- java -jar命令运行jar包时指定外部依赖jar包
大家都知道一个java应用项目可以打包成一个jar,当然你必须指定一个拥有main函数的main class作为你这个jar包的程序入口.具体的方法是修改jar包内目录META-INF下的MANIFE ...
- eclipse导入jar包的三种方法
我们在用Eclipse开发程序的时候,经常要用到第三方jar包.引入jar包不是一个小问题,由于jar包位置不清楚,而浪费时间.下面配图说明3种Eclipse引入jar包的方式. 1.最常用的普通 ...
- 怎样在运行jar包时指定jdk
正常情况下,运行jar包使用命令是: java -jar xxx.jar 这里默认使用JAVA_HOME环境变量中的jdk. 如果想要指定jdk路径运行jar包,可以使用以下命令: %~dp0\jav ...
最新文章
- emmmmmm(官宣?)
- django 1.2.1更新后 关于CSRF token missing or incorrect的问题
- 数仓 调度_网易实时数仓实践
- EduCoder 机器学习 决策树
- 一文搞定Linux shell脚本编程( 史上最全汇总 )
- python写一个自动登录脚本_Python 实现自动登录+点击+滑动验证功能
- 编写一个程序,找到大于平均值的项的数目
- calendar操作详解
- springboot 2.x 使用定时任务执行多次问题
- VC 2008 Express下安装OpenCV2.3.1
- Python学习教程(Python学习路线):Python3你还未get到的隐藏技能
- sql server cross/outer apply 用法
- 自然语言处理NLP星空智能对话机器人系列:理解语言的 Transformer 模型-子词分词器
- 【数字设计】恒玄科技_笔试面试题目分享
- 计算机毕业论文个人小结2500字,毕业论文个人小结
- 互联网和大数据是什么意思_互联网大数据是什么,求详细的解答
- android 常用action和category
- php 识别lrc,自动识别LRC歌词精选.pptx
- 没有稿酬,混了这么多年-文艺it工程师自白(写于2014年)
- onedrive登陆以后是白板,我下载了onedrive以后,安装到登陆界面,输入账号,提示:我们的系统中没有 - Microsoft Community...