Eclipse打JAR包的使用
[转自] http://www.oseye.net/user/kevin/blog/227
编译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
总结:类库一般打包成JAR file,而可执行程序就没必要使用FatJar插件了,使用Eclipse自带的也蛮好的。
转载于:https://www.cnblogs.com/pekkle/p/6568771.html
Eclipse打JAR包的使用相关推荐
- eclipse导入jar包_在命令行上操作JAR,WAR和EAR
eclipse导入jar包 尽管Java IDE和许多图形工具使查看和操作Java归档文件(JAR,WAR和EAR)文件的内容比以往更加容易,但有时我还是更喜欢使用命令行jar命令来完成这些任务. 当 ...
- Eclipse打JAR包引用的第三方JAR包找不到 问题解决
在做项目过程中,使用Eclipse打成JAR包,使用 Export-->Java-->JAR file ,我的jar包里面还引用了第三方的jar包:比如 log4j, 我也碰到了这样的问题 ...
- eclipse导入jar包的三种方法
我们在用Eclipse开发程序的时候,经常要用到第三方jar包.引入jar包不是一个小问题,由于jar包位置不清楚,而浪费时间.下面配图说明3种Eclipse引入jar包的方式. 1.最常用的普通 ...
- Eclipse导入jar包并查看源代码
Eclipse导入jar包查看源代码 在eclipse中新建工程,如图wordcount 在wordcount新建以个文件夹命名为lib,在工程上右键new->folder 将jar包复制到li ...
- eclipse打的jar包无法执行,报错could not find main class
这几天做了个小程序,并用eclipse打成jar包打算在电脑上运行,结果双击打开jar时提示could not find main class等错误信息,居然提示没找到入口主函数,我了个去,然后就在网 ...
- Eclipse打JAR包,插件FatJar安装与使用
from:http://blog.csdn.net/jikeyzhang/article/details/4731968 下载RUL: 下载fatJar插件,解压缩后是一个.../plugins/( ...
- Eclipse下把jar包放到工程lib下和通过buildpath加载有什么不同(解决找不到类的中级方法)...
我通过Eclipse的 User Libranry 将jar导入 Eclipse里面,编译没有问题,运行的时候就报class文件没有定义,后来上网上查了下,原因找到啦,是这样的: 用Java Buil ...
- java使用eclipse打jar包_Eclipse对Java项目打Jar包
在本Java项目中,如下图一所示,Java项目含有外部依赖Jar包 -- fastjson-1.2.29.jar 包. 在经历了多次的失败后,最后我终于使用 Eclipse 对 "Java ...
- eclipse java jar源码,eclipse查看Jar包源码
这几天想研究一下hibernate等流行开源框架的源码,于是了解了一下如何在eclipse中查看导入的jar包的源码. 我们在开发或学习过程中,有时总避免不了查看jar包的源码.当我们按Ctrl+点击 ...
最新文章
- 《深入理解计算机系统》第七章读书笔记
- caffe安装,编译(包括CUDA和cuDNN的安装),并训练,测试自己的数据(caffe使用教程)
- ui uview 安卓开发_uni-app UI框架之uview-ui使用教程
- c++直角坐标系与极坐标系的转换_一篇阅读量高达2百6十多万的关于坐标系和投影的相关知识探讨...
- 使用Unoconv和LibreOffice进行格式转换实现在线预览 doc,doxc,xls,xlsx,ppt,pptx 文件
- 电脑突然无法播放html音频,电脑无法播放音频怎么办
- linux镜像默认的安装位置,Linux下正确修改Docker镜像和容器的默认存储位置,亲测有效...
- SecureCRT 6.7.0.153 汉化绿色版
- 如何解决sqlserver 2005 备份的时候无法选择除系统盘外的其他盘符?
- UnityShader13:渐变与遮罩
- 简单ajax跨域请求
- mysql80连接不上本地服务器_干货教程:如何在服务器上安装Mysql8.0
- node.js 与 nvm安装教程
- R 学习笔记《十一》 R语言初学者指南--图形工具(续)
- 坐标系ICRS与ITRS相互转换,时间系统及转换
- 牛客编程语言练习赛第三场(C++)
- CTF比赛工具自收集
- PhotoSwipe.js 相册展示插件学习
- Android RxJava与Retrofit与RecyclerView与Fresco结合网络请求
- Python基础知识点梳理
热门文章
- .NET中统一的存储过程调用方法(收藏)
- Java面向对象基础学习笔记(构造、重载、继承、多态、抽象类、接口、模块)
- 如何查看linux的版本?
- 14-求两个日期之间的天数
- java中static作用详解(版本二)
- 订单生产计划表范本_服装生产管理必看丨一文解决车间管理混乱
- cmake安装更新(解决cmake报错:CMake 3.8 or higher is required. You are running version 3.5.1
- Ubuntu远程服务器创建新用户并赋予权限
- Cover Protocol更新赔偿计划 新增三个新COVER代币获赔方
- 风控扫盲:巴塞尔下的分池与量化风控岗