Eclipse打JAR包的使用
编译Java代码你当然可以直接使用Javac,但对于大多同学还是使用Eclipse编辑器来得快捷。这篇文章来说说我使用Eclipse编译后的执行之路,走路许多弯路,看我一一道来。
演示系统的架构
首先看看我的目录结构:
这个演示代码非常简单,结构也非常清晰,不能用于任何生产,只是为了演示而已。大致思路是:HelloJar项目为UserJar提供类库工具,HelloJar的Hello类只有一个方法:
package net.oseye;
public class Hello {
public String say(String name){
return "Hello,"+name;
}
}
而UserJar的RunMain类是程序入口,调用HelloJar的函数,代码如下:
package net.oseye;
import net.oseye.Hello;
public class RunMain {
public static void main(String[] args) {
System.out.println(new Hello().say("oseye"));
}
}
整个架构就是如此,下面我们先来到处类库HelloJar吧。
使用Eclipse到处Jar包
- 在HelloJar项目上右键菜单,选择“Export...”;
- 在弹出的Export对话框选择JAR File选项,如:

这里为什么选择JAR file而不是Runnable JAR file,稍后再说。 - 点击Next,选择项目和导出JAR的目录

一路Next或直接Finish,完成。如果不出差错,这就成功导出了JAR包。
引用第三方JAR包
由于UserJar使用了HelloJar.jar,现在我们展示下如何引用第三方JAR包的。
在UserJar项目右键选择"Properties",打开对话框,点击“Add External JARs”按钮选择要引用的JAR包即可。
直接执行程序
在DOS命令行进入UserJar的bin目录执行,报了如下异常:
这是因为引用了第三方的JAR包,需要设置classpath才能执行成功:
java -cp .;d:\jar\HelloJar.jar net.oseye.RunMain
如果引用很多第三方JAR岂不是很麻烦。于是我想把UserJar打成一个JAR包执行。
执行JAR包
最开始在网上搜到可以使用fatjar插件,可以把项目包括第三方JAR打成一个包。于是安装了fatjar,使用也非常方便。
- 在UserJar项目上右键选择"Build Fat Jar";
- 在对话框设置如下:

- Next,选择需要打成一个包的第三方JAR包,Finish即可。
- 执行JAR包:
java -jar UserJar_fat.jar
结果:

- 哈哈,这样是不是更方便。其实解压UserJar_fat.jar你就能看到HelloJar.jar:

使用Eclipse打Runnable JAR file包
上文说到为什么选择JAR file而不是Runnable JAR file,这里就简单说下两者的区别。前者是只把项目打包,不包括第三方JAR,而后者可以,就像使用FatJar插件一样。
- 先在UserJar右键"Run As" > "Java Application"(这需要有Main Class才行),否则下面的步骤走不通的;
- 在UserJar项目右键,如第一张图,选择选择“Runnable JAR file”;
- 点击Next,进入Export对话框:

一定要经过第一步的Run,否则你的“Lanuch configuration”是空的。点击Finish完成即可。 - 对Library handling的三个选项稍作说明:
- Extract required libraries into generated JAR:只把第三方JAR包需要的class提取来和项目一起打包

- package equired libraries into generated JAR:和fatjar差不多,是把第三方的JAR一起打包,只是和FatJar的目录不太一样,FatJar是放在lib文件夹下,而它是放在根目录了

- 第三个选项是把第三方的JAR包拷贝到另一个子目录里,而使用MANIFEST来设置

其中MANIFEST内容如下:Manifest-Version: 1.0
Class-Path: . UserJar_lib/HelloJar.jar
Main-Class: net.oseye.RunMain
- Extract required libraries into generated JAR:只把第三方JAR包需要的class提取来和项目一起打包
总结:类库一般打包成JAR file,而可执行程序就没必要使用FatJar插件了,使用Eclipse自带的也蛮好的。
Eclipse打JAR包的使用的更多相关文章
- Eclipse导出jar包Unity打包错误
前几天接SDK使用的是Android Studio昨天打开AndroidStudio后自动更新了gradler然后失败了然后AndroidStudio就挂了.就是用之前的方法Eclipse到处jar包 ...
- Eclipse生成Jar包方法
Eclipse生成jar包 第一:普通类导出jar包,我说的普通类就是指此类包含main方法,并且没有用到别的jar包. 1.在eclipse中选择你要导出的类或者package,右击,选择Exp ...
- eclipse打Jar包问题
1.首先,如果你的Java项目中没有任何第三方包,是十分容易的,只需要通过eclipse的Export就可以按操作一步步运行,如下: 选择你要导出的Java项目,右键选择Export,如下图,选择JA ...
- Eclipse的Jar包解压出System.js里String与Boolean定义分号可有可无吗?
Eclipse的Jar包解压出System.js里String与Boolean定义分号可有可无吗? org.eclipse.wst.jsdt.core_1.3.300.v201410221502\li ...
- Eclipse 生成jar包
Eclipse 生成jar包 打开 Jar 文件向导 Jar 文件向导可用于将项目导出为可运行的 jar 包. 打开向导的步骤为: 在 Package Explorer 中选择你要导出的项目内容.如果 ...
- eclipse中jar包打断点
eclipse中jar包打断点 1. 下载工具 链接:http://pan.baidu.com/s/1dEF5tqL 密码:md4m 2. 增加jadeclipse功能 把 net.sf.jadcli ...
- eclipse导出jar包的方法
第一:导出基本项目的jar包(此项目没有引用过第三方jar包) 1.在eclipse中选择你要导出的项目或package或类,右击,选择Export子选项: 2.在弹出的对话框中,选择java文件-- ...
- 【转】Eclipse打JAR包,插件FatJar安装与使用
原文地址:http://blog.csdn.net/jikeyzhang/article/details/4731968 下载RUL: 下载fatJar插件,解压缩后是一个.../plugins/(n ...
- java eclipse打jar包和执行jar中的main函数
jar包使用eclipse打包步骤 右键需要打包的项目->选择Export 到这里有两种打包的方式 1.如果项目中没有使用其他第三方包等,则直接选择下图中的第一种即可(JAR file) 2.如 ...
随机推荐
- endnote X7 加入文献
endnote可以管理文献,并且在word中方便的添加参考文献. 1.加入文献: 2.导入以后可以创建自己的group,然后把导入的参考文献拖到group里,这样方便在插入参考文献的时候用group名 ...
- 如何选择面向移动设备的html5开发框架
很久以前整理了篇将手机网站做成手机应用的JS框架.时隔一年多,很多新的技术已经出现,下面再来总结下还有哪些框架是适合面向手机设备的开发的. 1.jQuery Mobile jQuery Mobile ...
- javascript window.confirm确认 取消对话框实现代码小结
本文章讲述的三种都是基于了javascript confirm提示确认框的做法了,只是在不同的地方写哦,有需要的同学可参考一下 confirm() 方法 confirm() 方法用于显示一个带有指 ...
- ejb ql 返回object
String sqlStr="select t.car_kind,count(t) from table1 t where t.jb_date='"+jb_date+"' ...
- Android中的AutoCompleteTextView的使用
最终的效果如下: main.xml代码如下: <?xml version="1.0" encoding="utf-8"?> <LinearLa ...
- 2016年,总结篇 之 VueJS 如何入门(一)
接着 2016 年的总结,我们来看看 2016年 国内最火且没有之一的前端MVVM 框架 VueJs 虽然 到写文章的这个时间点,VueJs已经发布了 2.1.x 了, 但是对于很多 Vuejs 的初 ...
- puppet的配置清单书写
puppet的配置清单书写 1使用数组,合并同类的 例如你想安装很多软件,如果分开来写的话,很麻烦,不简洁,这时我们可以使用数组来完成 以前我们这样来写 class packages{ package ...
- FP Tree算法原理总结
在Apriori算法原理总结中,我们对Apriori算法的原理做了总结.作为一个挖掘频繁项集的算法,Apriori算法需要多次扫描数据,I/O是很大的瓶颈.为了解决这个问题,FP Tree算法(也称F ...
- windows环境下使用git客户端、github和tortoisegit管理项目代码
一.为什么 为什么不用svn? svn是一个优秀的代码和版本管理工具,使用svn只需要搭建好svn中央仓库,配置本地svn客户端即可,自从google code关闭服务之后,互联网上已经没有非常好的公 ...
- LPC4370使用学习:GPIO的引脚功能使用,和12864OLED模拟I2C驱动
一: 手中有块LPC4370的开发板,因为便宜,所以引脚引出的不多,而且只有基本的底板资源驱动代码和例程. 看着手册和例程看了老半天,写程序写了半天,结果GPIO老是驱动不起来,因为引脚配置寄存器中有 ...