`
lushuaiyin
  • 浏览: 701277 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

eclipse导出jar文件再将它转换成exe可执行文件详解

 
阅读更多
eclipse导出jar文件再将它转换成exe可执行文件详解
2009年08月12日 星期三 下午 03:45

对于作Java桌面应用来说,比较烦人的就是安装部署问题,客户端是否安装有jre、jre版本问题、jre去哪下载、如何用jre启动你的Java应用?不要说刚接触电脑的人,就算是比较熟悉电脑,如果没有接触过Java,面对一个Java应用,如何在Windows下启动它,估计都会折腾半天。如果不是因为这个问题,Java在我的眼里算是最完美的语言了,也是我最喜爱的语言。
所以我认为这个是导致Java桌面应用被一些人所讨厌的最大原因,Java的优势是“一次编写,随处运行”,跨平台特性确实很好,但并不是每个人都需要或都想要跨平台,而且有时候JVM平台或版本问题也会造成“一次编写,到处测试”的尴尬。
最好的方式莫过于带着JRE,让用户轻松点击就能运行。下面我们来解决这样的问题,有什么好的建议或方法请其他朋友多多指教或补充!
针对windows平台,让用户一键式安装,双击使用, 使用工具exe4j + Inno Setup, 这两个工具都可以在网上找到,不熟悉的可以多搜搜,使用起来也不难。
带着JRE运行,JRE的大小应该是最让人头疼的,我默认安装的jre6大小达到80M,而程序只有200-300k左右,感觉非常不合理,分发与网络传输过程也会大受影响!为了解决这个问题我一直在网络上搜索“瘦身版”的JRE,无意中搜到了Beansoft老师介绍的一篇关于迷你JRE的文章,相关的JRE下载后解压约14M左右,试用了一下,相对于我的应用缺少了一些类文件,关于部分xml操作类,及swing桌面应用框架相关连的部分类也找不到,最后借鉴了一下,自己把一个完整的JRE从80M瘦到了38M,去除了很多不需要的类文件,当然,如果耐心一点还可以再瘦下去,再抽掉一些类文件。
在这个基础上再配合Inno Setup这个安装包制作工具,最后把整个程序从40M压到了8M,下面看看关于整个操作过程,关于JRE的瘦身有些烦琐就不写了,而且SUN的JRE瘦身计划也在进行,相信很快会有更小的瘦身版JRE推出,自己没有必要再去费神。

下面是我的一个完整的Java程序 —— MyLoading

可以看到已经附带了jre1.6 , 下面先使用exe4j给它制作一个exe执行文件(即上图的MyLoading.exe),并指定我们自带的jre1.6 。以下是exe4j的启动界面,点击下一步开始创建配置文件。


接着选择类型,我们选择第一个,这样可以保证程序仍具有跨平台的特性。如果选择第二个,可以把程序完全编译成exe文件,可以更好的保护你的程序不被反编译。

接下来设置你的程序的短文件名,源文件夹路径(如我的:E:\MyLoading),以及要生成的exe文件的存放目录,exe存放目录必须指定到源文件夹下,这里我把它指定为E:\Myloading的根目录下。

接下来,可以给我们即将生成的exe文件起一个名字,如我的“MyLoading”,还可以给它指定一个ico类型的图标,其它按默认就可以了,如图:

接下来的这一步,我们需要把程序中所用到的类路径添加上去。然后指定程序的启动类,其它如果没有必要的话,则按默认即可,点击+号添加类路径:

基本上你所需要用到的Jar文件都要添加上去,可以逐个添加上去,也可以添加整个文件夹或者使用系统环境变量,为了使你的程序能够随处运行,所以还是强列建议你使用相对路径,并且不要使用环境变量。添加好你的类路径之后回到上一步去选择好你的"Main Class"即可。

接下来先选择我们的程序所需要的jre版本, 然后便是选择我们自带的jre了,这一步不是必须,但是为了更好的分发程序,我们自带了jre, 所以必须把我们自带的jre指定为首选的运行环境,如图选择:
Search sequence

默认情况下程序会去系统的注册表,环境变量及相关的目录查找jre,因为我们只需要自带的jre,所以这里我把默认的选项移除了,然后添加我们自己的jre所在的目录路径,点+号开始:

这里还是建议使用相对的目录路径:

指定jre所在的目录,如图:

最后我的jre目录路径就是这样的:.\jre1.6

下面这一步只是简单的给程序添加一个启动画面,然后按默认下一步下一步就可以了。


程序最终生成了这个执行文件: MyLoading.exe
现在使用它,已经可以正常利用我们自带的jre启动程序了,但是整个程序仍有40M的大小.
现在我们使用Inno Setup进行压缩并制作一个安装包。

Inno Setup的下载安装请到网上搜索,安装后启动脚本向导,如图所示:

整个过程很简单:


这里指定你的程序的启动文件,即刚才用exe4j创建的exe文件,并将你的整个程序目录都包含进去就可以了,接下来的基本上一直按下一步就可以了,直到脚本向导完成,




然后执行该脚本即可:





然后找到Inno Setup的默认输出目录,就可以看到编译输出后的安装包了,如下图:MyLoading安装.exe
大小已经压到了8.86M。

利用这个就可以快速轻松的安装你的Java桌面应用了。

eclipse导出jar文件再将它转换成exe可执行文件详解
关键字: 欢迎光临
此文章是为了帮助刚接触j2se或不懂如何打包jar文件的人而着笔,同时也是让自己的知识以文章的形式保存起来.

一、导出jar文件:

如果你的程序开发已经接近尾声了,正准备将其生成桌面可执行文件却不知道该如何操作时,你只要按照以下步骤实行即可:选中你的项目---然后右击弹出选项列表---选择Export---Java---jar file---next---browser(选择jar的存放路径)---next---next(不管太多继续下一步)---browser(选择你程序的主类--OK)---finish;查看你存放jar的目录,是否已经生成了?如果没有你一定没按照步骤操作.

二、运行jar文件:

生成的jar文件你可以双击运行它,但默认情况下会以压缩包的方式打开,如果这不是你想要的结果,请右击文件---打开方式---选择java(TM)platform来运行.我想这时你应该看到了你的软件界面.先恭喜你了..

三、连同第三方文件一并导出至jar文件:

如果你在程序开发的时候用到了第三方提供的API或者其它附属资源,在你导出生成jar文件时你必须将第三方的文件一并导出,不然你的程序运行将达不到你想要的结果.

你可以利用Fat jar插件生成jar,Fat jar 的下载地址: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文件拷贝到你的eclipse目录下的plugins中..重新启动你的eclipse平台,然后查看Window---preferences,弹出的窗口中有Fat jar preferences这一项则说明你已经安装成功了,没有这一项则未安装成功,需要多做如下几步操作:到你的eclipse目录下的configuration---org.eclipse.update,并删除platform.xml文件,然后重新启动eclipse.查看Window---preferences,你会发现Fat jar preferences这一项.恭喜你安装成功了.(未成功可直接去墙撞死)..

用Fat jar打包:右击你的项目,选项列表中有Build Fat jar这一项,选择它,弹出的窗口你会觉得特别亲切,一目了然使用很方便,点击Browser(Main-Class选择你的主类)---next---finish(勾选你需要一起打包的资源,默认为全部勾选).瞧,jar文件就生成在你的工程项目中了.运行它,一切顺利,否则就是你编程的问题了..

另:如果你不想用Fat jar来打包,有一个更快捷的方法可以帮助你,但也是有缺陷的.

步骤:将你需要用到的附属文件放到你的jre安装目录下的\lib\ext目录中(安装JDK的同时也安装了jre),再通过(一、导出jar文件)的方式生成jar.这样就可以了.它有个致命的缺点就是,这样的jar文件只能在你本机可以使用,如果要在别的机子上运行必需在\lib\ext放置同样的附属资源.

四、将jar文件转换成exe可执行文件:

exe文件使用方便,而且还可以提高源码及资源的安全性,但同时也失去了java的初衷--跨平台性.

如果你坚持要转换成exe文件,请按以下方式进行:

利用exe4j这个软件转换jar文件为exe文件,exe4j下载地址:http://www.ej-technologies.com/download/exe4j/files.html,(目前最新版本为4.2)有的需要安装,有的只要解压缩即可用.我一般用安装的exe4j软件,它们没有什么区别,因此找个可以用的就行了.下载安装后,运行它,接着按步骤操作:

1.运行后直接点Next.

2.选择第二项“JAR in EXE mode”,之后点击Next.

3.在General---Short name of your application框中输入你的应用程序的名字(随便即可),在Directories---Output directory框中输入生成exe后的保存路径,然后Next.

4.在Excutable name框中输入将要生成的exe的名字,“Icon File”是应用程序显示的小图标,不选也行.继续Next.

5.必须先配置Class-Path,点击+号添加文件,即jar文件,如果有用到其它资源需要把资源一起添加进去.

6.General --- Main Class选择主类.

7.Java Version --- Minimum version(低版本必须填写),Maximum version(高版本可以为空),如果都有填写那么高版本的值必须大于低版本的值.

8.勾选Allow JREs with a beta version number以及Only allow JDKs and no JREs.接着Next.到这一步你可以直接finish.这样就把jar转换成exe文件了.你可以点击Click Here to Start the Application按钮测试生成的文件.

到这里就完毕了,对你有没有帮助呢?我想多少解决一些人的烦恼是有的

http://01jiangwei01.javaeye.com/blog/440493(原文)

另外一篇:

首先,将编译好的程序打包成jar文件,然后做出exe,这样代码就不可见了;但是exe文件在没有安装jre的电脑上不能运行,如果要求客户再去安装jre 设置环境变量 就不雅了。我们需要将jre打包。
这几步操作网上介绍的插件和方法很多,但有的好用有的不好用,而且有的还需要注册。经过尝试比较,在“千里冰封”的博客上得到了很大的帮助。整理一下。使用这几个工具,您也可以顺利的发布您的java程序!


1 打包成双击可执行的jar文件。
推荐插件:fatJar(Eclipse使用)
下载地址 http://sourceforge.net/project/showfiles.php?group_id=115990&package_id=125924

我用的是Eclipse,它自带的打包方法在打包一些图片等资源时不是很爽。可以使用这个插件。
安装方法解压后将plugins文件夹下的net.sf.fjep.fatjar_0.0.24文件夹拷到eclipse安装目录的plugins 下。
用此工具可以方便的将eclipse中的工程打包成jar文件。如果是要打成可执行的jar请注意选取主类。
你的项目=〉Export..=>向导里有fat jar =>...


2 将jar文件转换成exe文件。
推荐工具:exe4j

用exe4j把java打包成exe
http://www.blogjava.net/hadeslee/archive/2007/10/12/152228.html
在我们写程序的时候,有时会有一种需求,那就是希望我们的程序是一个可执行文件,而不是一个jar文件,其实大部份时候,可执行的jar文件都可以满足要求,但是如果我们的程序是需要保护的,那么打包成jar文件就不太安全了,因为jar文件就是一个解压缩文件,一解压就什么都能看到了,当然也可以选择混淆,但是混淆了以后排错就没那么容易了,因为混淆的时候,把一些类的信息都混淆了。如何既保证代码的安全又容易排错呢?那么打包成exe就是一种很好的办法了,其实我今天介绍这个方法并不是希望大家去打包成exe文件,因为exe文件毕竟不是跨平台的,用了exe的格式就失去了java的初衷了。

exe4j可以打包成各种格式的exe,可以把jar打包进exe,也可以引用一个外部的jar文件,还可以打包成windows服务的程序,并且可以设置最低jre的版本,还可以设定启动画面,虽然java6.0已经实现了这一点,但是还是没有exe4j生成的启动画面快。

3 将exe文件并jre打包成安装文件 可以在没有安装java虚拟机的电脑上运行
推荐工具:install4j

Install4j介绍
http://www.blogjava.net/hadeslee/archive/2007/10/15/152855.html
install4j是一个功能强大的,多平台Java安装文件生成工具,用于生成Java应用程序本地化的安装及应用程序发布。 install4j 的优异性在于它易于使用,紧密的集成到目标平台,以及灵活的JRE 管理与部署选项。

创建发布树
install4j的图形用户界面允许你:

* 完全自定义发布树
在发布树的每一个目录中,你能设置整个目录内容或是磁盘上任何目录的单个文件。定义的视图与结果视图让你能完全控制安装程序将发布的文件。
 
* 处理特定平台的差异
install4j提供方便的“包含/排除”机制,使其适应平台方式来进行发布。
 
* 针对Unix, Linux 及Mac OS X所定义的文件权限
对发布树的每一个元素,当其安装在类似于Unix这样的平台上时,你能自定义用户访问的权限。
 
* 定义优良的卸载策略
对发布树的每一个元素,你能决定在卸载时是否删除它。
 
* 定义覆盖策略
对发布树的每一个元素,你能配置不同的覆盖策略,当安装过程中需要覆盖文件时,这些覆盖策略会指示nstall4j进行相应的操作。
 
* 定义安装的组件
你能定义文件及目录的分组,形成分离的安装组件,这样你就可提供给用户来选择只安装一定的组件。

其实一个好的应用如果不太好布署,那么别人也只能对它望而兴叹了,现在有了install4j,很多布署的问题几乎全部解决了.我们可以用exe4j打包java应用,然后用install4j发布java应用,以前java程序布署难的问题,现在几乎都解决了.install4j不但用于打包很合适,并且它还提供了一组很强大很实用的与平台相关的api.这些对于扩展我们的程序也是有很大帮助的。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/DMman/archive/2007/11/23/1899367.aspx

分享到:
评论
1 楼 sf_dream 2013-06-08  
楼主,你那个放到没有安装jdk的电脑上可以运行不?

相关推荐

    eclipse导出可运行的jar文件

    ### Eclipse 导出可运行的 Jar 文件详解 在 Java 开发过程中,经常需要将开发完成的应用程序打包成可执行的 jar 文件,以便于部署、分发及运行。Eclipse 是一款非常流行的 Java 集成开发环境(IDE),它提供了方便...

    eclipse导出jar包

    ### Eclipse导出JAR包详解 #### 一、前言 在Java开发过程中,经常会遇到将项目打包成可执行的JAR文件的需求。这不仅便于程序的发布与分发,还能帮助开发者更好地管理项目的依赖关系。Eclipse作为一款广泛使用的...

    Eclipse 项目 打包成 可执行jar 文件

    ### Eclipse 项目打包成可执行JAR文件详解 在Java开发过程中,经常需要将开发完成的应用程序打包成可执行的JAR文件以便于部署和分发。本文将详细介绍如何使用Eclipse IDE将Java项目打包成可执行的JAR文件。 #### ...

    Eclipse jar打包详解

    在本文中,我们将详细介绍如何使用 Eclipse 将一个项目打包成 jar 文件,包括 manifest 文件的定义、jar 文件的生成步骤等内容。 Manifest 文件的定义 在 Eclipse 中,manifest 文件是 jar 文件的描述文件,它提供...

    Java打包成jar文件,以及将jar文件导出为exe文件方法汇总

    ##### 方法一:使用Eclipse导出jar文件 1. **打开项目**:在Eclipse中打开您希望打包的Java项目。 2. **选择导出选项**:右键点击该项目,在弹出菜单中选择“Export”。 3. **选择JAR file**:在Export窗口中,...

    Eclipse_java文件打包成exe文件详解java代码打包exe

    4. **导出JAR文件**:使用Eclipse的导出功能将项目打包成JAR文件。具体操作步骤如下: - 右键点击项目 -> `Export...` - 选择`Java` -> `JAR file` - 配置导出选项,比如选择`Extract required libraries into ...

    打包jar文件Eclipse插件FatJar安装与使用.pdf

    在Java开发过程中,经常需要将项目打包成一个可执行的`.jar`文件,以便于部署或分发。通常情况下,我们可以利用Eclipse自带的导出工具来实现这个目的。然而,在某些场景下,我们可能希望将项目的依赖库、配置文件等...

    Fat Jar Eclipse Plug-In教程.

    结合使用Fat Jar Eclipse Plug-In,你可以轻松地将Java应用程序打包成一个包含所有依赖且具有原生外观的可执行文件,非常适合分发给最终用户。 综上所述,Fat Jar Eclipse Plug-In不仅简化了Java项目的打包过程,还提供...

    javajar包运行及bat文件制作.doc

    在日常的软件开发过程中,我们经常需要将Java应用程序打包成可执行的jar文件,并通过命令行或者批处理脚本(bat文件)来运行这些应用。这种方式不仅便于程序的分发,也简化了用户的操作流程。本文将详细介绍如何在...

    详解eclipse将项目打包成jar文件的两种方法及问题解决方法

    "详解eclipse将项目打包成jar文件的两种方法及问题解决方法" 本文给大家介绍了eclipse中将项目打包成jar文件的两种方法及其遇到问题解决方法。下面将详细介绍这两种方法: 方法一:利用eclipse中自带的export功能 ...

    JavaSE导出jar(两种方法)

    在Java开发中,将项目打包成jar文件是一个常见的任务,这有助于分发和运行Java应用程序。以下是关于"JavaSE导出jar(两种方法)"的知识点详解: ### 方法一:使用Eclipse IDE Eclipse是一款广泛使用的Java集成开发...

    生成JAR包的方法(打包后运行好像不快)

    - **使用原生打包工具**:例如使用`Native-image`等工具,可以将JAR包转换为原生可执行文件,通常可以显著提升启动速度。 - **清单文件优化**:在清单文件中合理设置`Main-Class`和`Class-Path`等属性,避免不必要...

    eclipse打包操作

    Eclipse提供多种方式来实现项目的打包需求,最常用的方法是通过导出功能生成JAR或可执行文件。首先,选择需要打包的项目,然后依次点击菜单栏上的“File” > “Export”,这将打开“Export”向导窗口。在向导窗口中...

    Eclipse RCP开发详解

    部署方面,Eclipse RCP应用通常打包为一个可执行的JAR或ZIP文件(称为RCP产品)。产品配置文件定义了运行时环境的详细信息,如启动参数、插件列表等。你可以使用PDE的打包工具生成最终的部署包。 最后,测试和调试...

    net.sf.fjep.fatjar使用方法

    在Java开发过程中,经常需要将项目打包成可执行的`.jar`文件,以便于部署和分发。`net.sf.fjep.fatjar`是一款强大的工具,能够帮助开发者轻松地将Java项目及其依赖库打包成一个独立的、可执行的`.jar`文件。本文将...

Global site tag (gtag.js) - Google Analytics