﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-zjun0211</title><link>http://www.blogjava.net/zjun0211/</link><description /><language>zh-cn</language><lastBuildDate>Thu, 07 May 2026 02:57:05 GMT</lastBuildDate><pubDate>Thu, 07 May 2026 02:57:05 GMT</pubDate><ttl>60</ttl><item><title>java打包生成jar和exe全过程</title><link>http://www.blogjava.net/zjun0211/archive/2011/08/25/357228.html</link><dc:creator>漫夜长长</dc:creator><author>漫夜长长</author><pubDate>Wed, 24 Aug 2011 16:38:00 GMT</pubDate><guid>http://www.blogjava.net/zjun0211/archive/2011/08/25/357228.html</guid><wfw:comment>http://www.blogjava.net/zjun0211/comments/357228.html</wfw:comment><comments>http://www.blogjava.net/zjun0211/archive/2011/08/25/357228.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zjun0211/comments/commentRss/357228.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zjun0211/services/trackbacks/357228.html</trackback:ping><description><![CDATA[Java程序完成以后,对于Windows操作系统,习惯总是想双击某个exe文件就可以直接运行程序,现我将一步一步的实现该过程.最终结果是:不用安装JRE环境,不用安装数据库,直接双击一个exe文件,就可以运行程序.<br /><br />　　下面介绍过程：<br /><br />　　第一步:完成Java GUI程序<br /><br />　　在Eclipse下,程序能够正常运行.<br /><br />　　第二步:准备清单文件(MANIFEST.MF)<br /><br />　　方法1:直接拷贝其它能运行的JAR文件中的MANIFEST.MF进行修改<br /><br />　　方法2:利用IDE工具,如Eclipse在生成JAR文件时自动生成<br /><br />　　MANIFEST.MF内容如下:<br /><br />　　Manifest-Version: 1.0<br /><br />　　Main-Class: manager.ui.MainFrame<br /><br />　　Class-Path: ./lib/spring.jar ./lib/hibernate.jar ./lib/derby.jar<br /><br />　　SplashScreen-Imager: manager/resources/images/splash.jpg<br /><br />　　说明:<br /><br />　　Manifest-Version － 指定清单文件的版本号<br /><br />　　Main-Class －指定程序运行的入口类。注意：类名后不要加class扩展名<br /><br />　　Class-Path －指定支持库的路径。&#8220;.&#8221;指程序运行目录，即导出的JAR包所在目录。程序运行时依据Class-Path项的设置路径来查找支持库。每一个支持库之间用空格隔开。在这里使用了hibernate,spring,derby.<br /><br />　　注意:<br /><br />　　1.如果Java应用程序用到了一些Eclipse包，那么就必须将这些包也复制到程序运行目录，设置到Class-Path,否则程序将无法运行.引用了一些外部组件也需要如此设置,如hibernate,spring,derby.<br /><br />　　2. 除了入口类的包名和类名之外，其他设置项都不分大小写，比如：Class-Path写成class-path或CLASS-PATH也可以，swt.jar写成SWT.JAR也行。<br /><br />　　3.类名后不要加class扩展名<br /><br />　　4.每一行的':'后都有一个空格,如Class-Path:&lt;空格&gt;./lib/spring.jar<br /><br />　　5.Class-Path中.引入的JAR文件每行不得超过19个,否则会报错.但在让人意外的是每行只有前9个有效,故将所有同类型的JAR 文件做成一个JAR文件.如我这里的spring.jar,hibernate.jar,derby.jar都是同类JAR文件的组合.<br /><br />第三步:修改spring配置文件<br /><br />　　在spring的 'sessionFactory' bean的配置中则要这样写(与程序中ClassPathXmlApplicationContext对应)<br /><br />　　&lt;property name="mappingLocations"&gt;<br /><br />　　&lt;list&gt;<br /><br />　　&lt;value&gt;manager/entity/MyFile.hbm.xml&lt;/value&gt;<br /><br />　　&lt;value&gt;manager/entity/FileType.hbm.xml&lt;/value&gt;<br /><br />　　...<br /><br />　　&lt;/list&gt;<br /><br />　　&lt;/property&gt;<br /><br />　　第四步:使用Eclipse生成JAR文件<br /><br />　　1.右键单击项目名，在弹出菜单中选择&#8220;Export&#8221;。在弹出的如下图所示的对话框中，选择&#8220;JAR文件&#8221;，单击&#8220;Next&#8221;<br /><br />　　2.将右边不需要的文件都取消勾选。在&#8220;选择导出目标(Select the export destination)&#8221;项文本框中设置JAR包的输出路径和包名（可以任意取名）为&#8220;D:\manager\manager.jar&#8221;。接受其他的默认设置不变，单击&#8220;Next&#8221;。<br /><br />　　附注：左边虽然选择了src目录，但源文件并不会导出到包中，除非勾选了&#8220;导出Java源代码文件和资源(Export java source files and resources)&#8221;项。<br /><br />　　3.接受默认设置不变，单击&#8220;Next&#8221;<br /><br />　　4.这一步较关键。如下图所示，选择&#8220;从工作空间中使用现有清单&#8221;项，将创建的清单文件输入，也可以通过旁边的&#8220;浏览&#8221;按钮来选择清单文件。输入清单文件后，单击&#8220;Finish&#8221;，Eclipse开始将项目打包。<br /><br />　　附:这里也可以选择Generate the manifest file.但生成的清单文件MAINFEST.MF需要修改.<br /><br />　　注意:清单文件MAINFEST.MF一定要按第二步那样设置.<br /><br />　　生成的JAR文件目录如下:<br /><br />　　第五步:生成运行manager.jar的批处理文件manager.bat(该步可以不要)<br /><br />　　在manager目录下创建一个批处理程序manager.bat（名字任取，扩展名必须是bat），其内容仅一句语句，如下：<br /><br />　　javaw -jar manager.jar<br /><br />　　说明：<br /><br />　　1.javaw对应c:\jdk\jre\bin\javaw.exe文件，如果windows提示命令未发现，则需要将c:\jdk\jre\bin路径加入到windows环境变量path中。<br /><br />　　2.在运行程序的时候有一个讨厌的黑色命令行窗口，要去掉它，可以将run.bat内容更改如下：&#8220;start javaw -jar manager.jar&#8221;，start是指调用了windows的&#8220;运行&#8221;命令。<br /><br />　　3.在后边加一个pause就可以让你看到具体哪里出错了,如:<br /><br />　　start javaw -jar manager.jar<br /><br />　　pause<br /><br />　　双击manager.bat,就可以运行该JAR文件了.<br /><br />第六步:让电脑不必安装JRE环境,也能运行.<br /><br />　　通常运行Java程序有个前提条件：用户电脑必须先安装JRE环境。虽然安装JRE环境非常简单，但毕竟多了一步，算是有一点点的瑕疵。这里给出一个不必让用户安装JRE环境的方法，其实现步骤如下：<br /><br />　　（1）将原JDK中的&#8220;jre&#8221;目录复制到&#8220;D:\manager\java&#8221;目录下（java也可换成其他名称）。<br /><br />　　（2）将JDK和JRE从本机卸载掉，这样表示本机没有安装JAVA运行环境。<br /><br />　　（3）修改批处理文件manager.bat中的命令为&#8220;start java\jre\bin\javaw -jar manager.jar&#8221;，仅仅是在javaw前加上了一个相对应路径。<br /><br />　　双击manager.bat即可在不安装JRE环境的电脑运行此Java应用程序。<br /><br />　　第七步:抛弃批处理文件（*.bat）,生成exe文件<br /><br />　　用批处理文件运行程序似乎不够专业，虽然它足以完成运行任务。但习惯就象一种毒药一旦染上就很难摆脱它的影响，Windows统治下的人们早已经习惯运行扩展名是EXE的程序，用*.bat他们就会感觉别扭。<br /><br />　　我们可以用一个叫JavaLauncher的免费小程序来代替批处理文件去运行Java程序。JavaLauncher的下载网址是：<br /><br />　　http://www.rolemaker.dk/nonRoleMaker/javalauncher/marner_java_launcher.htm<br /><br />　　下载下来的文件是一个名JavaLauncher.zip的压缩包，解压后的目录结构如下所示：<br /><br />　　JavaLauncher.zip目录结构<br /><br />　　source&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 目录包含了JavaLauncher的源程序，是用C语言写的<br /><br />　　changes.txt&nbsp;&nbsp; 是新版的修改说明<br /><br />　　launch.exe&nbsp;&nbsp;&nbsp; 是主程序<br /><br />　　launcher.cfg&nbsp; 是配置文件<br /><br />　　readme.txt&nbsp;&nbsp;&nbsp; 是一些说明和示例<br /><br />　　我们只需要launch.exe、launcher.cfg两个文件，将这两个文件复制到打包文件所在的目录。launcher.cfg是一个仅三行内容的文本文件，将它修改如下：<br /><br />　　.\java\jre\bin\javaw.exe<br /><br />　　-jar manager.jar<br /><br />　　第一行设置指向JAR包managger.jar的目录，由于launch.exe和myswt.jar同在一个目录，所以用&#8220;.&#8221;即当前目录。<br /><br />　　第二行设置指向jre\bin\javaw.exe的路径。在上面已将jre目录复制到了java子目录中<br /><br />　　配置好launcher.cfg后，双击launch.exe即可运行java应用程序。<br /><br />　　如果仔佃研究eclipse的启动方式，发现eclipse和JavaLauncher的原理一样：eclipse.exe相当于 launch.exe，startup.jar相当于manager.jar。只不过eclipse.exe不象launch.exe要具有通用性，所以它没有*.cfg这样的配置文件，而是将启动信息固化在eclipse.exe中。<br /><br />　　第八步:美化图标<br /><br />　　launch.exe文件的图标太单调了，让我们给它换个好看点的。换程序的图标需要用到一个免费的软件：Resource Hacker.<br /><br />　　第九步:最后的打包<br /><br />　　发送给用户之前，通常要用WinZip或WinRAR将所有的文件全部打成一个压缩包，然后用户得到这个压缩包后，将其解压缩后即可运行程序，Eclipse软件就是这种方式。<br /><br />　　另一种方式是用InstallShield、InstallAnyWhere这样的安装程序制作软件来创建一个单一的setup.exe文件，它具有向导式的安装界面，而且还可以往windows的程序栏插入菜单项，关于这些安装程序制作软件的具体使用请参阅相关书籍。<br /><img src ="http://www.blogjava.net/zjun0211/aggbug/357228.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zjun0211/" target="_blank">漫夜长长</a> 2011-08-25 00:38 <a href="http://www.blogjava.net/zjun0211/archive/2011/08/25/357228.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>