相信大家在开发java的时候一定会遇到要求将java工程打包成可运行的jar的需求,今天我在这篇博客中详细讲解一下生成可运行jar的两种方法,亲测完全可行。

1. 工程中不包含第三方的jar包

这种情况比较简单,选中需要生成jar的工程,右击-->Export,出现如下的窗口

选中java--- > JAR file,出现如下窗口,

此处要:

选中 Export generated class files and resources;
选中 Compress the contents of the JAR file;
选中 Overwrite existing files without warning;

然后“Next”,出现如下窗口

选中 Export class files with compile errors;
选中 Export class files with compile warnings;

点击“Next”,出现如下窗口

选择“Main class”,then “finish” OK。

运行jar包的方法:

cmd,进入jar包所在的位置,运行命令 java -jar *.jar,就可以了。或者直接配置文件关联。

2.工程包含第三方的jar包时


果工程中包含第三方的jar包时,安装上面的方法生产的jar包,在运行时会报java.lang.NoClassDefFoundError的错,经过
google,
baidu很多网站之后,发现需要安装eclipse的插件,插件地址是:http://sourceforge.net/projects/fjep/

下载的文件是“net.sf.fjep.fatjar_0.0.31.zip”,解压缩后你会看到plugins文件夹中的
net.sf.fjep.fatjar_0.0.31.jar文件(简称Fat jar)。

Fat jar插件的安装方式:

把Fat

jar文件拷贝到你的eclipse目录下的plugins中..重新启动你的eclipse平台,然后查看Window---preferences,
弹出的窗口中有Fat jar
preferences这一项则说明你已经安装成功了,没有这一项则未安装成功,需要多做如下几步操作:到你的eclipse目录下的
configuration---org.eclipse.update,并删除platform.xml文件,然后重新启动eclipse.查看
Window---preferences,你会发现Fat jar,效果如下图:

接下来就可以生成包含第三方jar包的可运行的jar包了。

选中工程,右击 -- > Export --- > Other --- > Fat jar Exportor,效果如下图所示,

然后,next ---> 选中要生成jar包的工程 --  > next ---> 出现如下图所示的界面

在这里需要设置Main-class,它的值是工程运行的main class,并且勾上One-JAR,点击 next出现如下窗口:


是项目引用的第三方类库,点击“finish”,这样就生成了包含第三方jar包的可运行的jar包。以上上在基于Eclipse
3.6.2(蓝色标题栏)和Eclipse 4.2.1(红色标题栏)的效果,如果是Eclipse
3.6以下的版本(具体的版本不确定,因为我没有试过),在选中工程右击后,会有Build Fat Jar,如下图所示,

接下来的操作大同小异了。

eclipse生成可执行jar包[转]的更多相关文章

  1. eclipse生成可执行jar包(引入第三方.jar文件)

    1. eclipse建立普通的java project项目(项目名aa) 2. 项目正常组织通过buildpath加载各种jar包入项目aa比如例子项目里,加入了spring 各种jar包加入各种配置 ...

  2. JAVA生成(可执行)Jar包的全面详解说明 [打包][SpringBoot][Eclipse][IDEA][Maven][Gradle][分离][可执行]

    辛苦所得,转载还请注明: https://www.cnblogs.com/applerosa/p/9739007.html  得空整理了关于java 开发中,所有打包方式的 一个操作方法, 有基于ID ...

  3. Java项目生成可执行jar包、exe文件以及在Windows下的安装文件

    1.如何通过eclipse将Java项目生成可执行jar包 首先把在eclipse下的java项目导出jar file 下一步 下一步 下一步 最后点击完成,便生成了可执行的jar文件.可以在刚刚选择 ...

  4. maven插件生成可执行jar包

    <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assem ...

  5. eclipse生成spring boot jar包

    1.右击项目,选择Run As - Maven clean 2.右击项目,选择Run As - Maven install 3.成功后 会在项目的target文件夹下生成jar包 4.将打包好的jar ...

  6. 使用maven生成可执行jar包(包含依赖)

    零零散散找了一些文章,有些感觉好乱,自己整理一下 以下是pom.xml里的配置,本来有很多依赖包,为了不让配置看着很长,我删了一些dependencies中我自己项目中引入的jar包 <proj ...

  7. eclipse导出可执行jar包步骤

    按步骤图文说明 第一步:选择要导出的工程,右键[export] 第二步:双击Java文件夹下的[Runnable Jar File] 第三步:该步骤分4步走 3.1 从下拉框选择该jar的入口文件,即 ...

  8. Eclipse打包可执行jar包操作步骤

    1.右键点击工程,选择Export…,进入页面 2.弹出对话框,选择Java->Runnable JAR file ,点击Next>,页面显示jar包的输出路径,配置为jmeter的/li ...

  9. java 生成可执行jar包

    jar -cvfm my.jar [配置主函数入口文件] [包] Main-Class: 包名.类名   注意“:”后边有一个空格,类名后边要有回车换行

随机推荐

  1. hdu1166 敌兵布阵(线段树 求区间和 更新点)

    敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  2. 数学图形之Breather surface

    这是一种挺漂亮的曲面图形,可惜没有找到太多的相关解释. In differential equations, a breather surface is a mathematical surface ...

  3. 告诉我, 究竟我的SQL Server慢在哪里?

    你可以使用下面的语句来使用sys.dm_os_wait_stats这个DMV得到线程的等待信息(线程在等什么, 等了多久)的统计数值. WITH [Waits] AS (SELECT [wait_ty ...

  4. Binary Tree Preorder Traversal leetcode java

    题目: Given a binary tree, return the preorder traversal of its nodes' values. For example: Given bina ...

  5. go语言string、int、int64互相转换

    #string到int int,err:=strconv.Atoi(string) #string到int64 int64, err := strconv.ParseInt(string, 10, 6 ...

  6. php中120个内置函数

    php中实现事件模式 https://yq.aliyun.com/ziliao/162660 <?php class Event{ private $events = []; public fu ...

  7. VS2008中生成DLL项目

    创建项目 新建项目-> 选择Win32项目 输入项目名称,点击确定.在程序向导中选择下一步 选择DLL. 由于我想创建的是相对独立的DLL,所以不选择ATL和MFC. 点击完成.   Main文 ...

  8. 【Android 百度地图实战】1.构建一个基础的地图页面

    虽然很简单,但是还是有些细节要注意的,小错误搞死人啊,具体步骤官网API已提供,地址在这. 效果图如下: 主要代码: package yc.example.yc_ebaidumap; import a ...

  9. Python中参数多个值的表示法

    今天在写Python脚本时,调用了数据管理-制图综合-融合工具,在ArcGIS里操作的参数设置如下: 如果融合字段只有一个那好办,如果融合字段有多个我该怎么表达,查看帮助文档中的示例代码明白了: 所以 ...

  10. 批量合并GDB

    在实际操作中,经常对数据库文件进行合并.裁切等.如果遇到gdb比较多,要素层比较多,而且还存在数据集.虽然ArcGIS中的批量处理的功能,但填写参数过程也比较麻烦,如果一次性处理过多,程序容易停止工作 ...