这里主要是讲解一下怎样将 Java程序打包成独立运行的exe程序包,以下这种方法应该是最佳的解决方案了。NetDuke的EXE程序包了是使用这种方案制作的。在操作步骤上还是比较简单的,而且通用性强。

1.程序打包
        首先将程序打成Jar包,打包命令:jar cf 包文件名.jar *.class。接下来编译包中的清单文件MANIFEST.MF 。
        Manifest-Version - 指定清单文件的版本号
        Main-Class - 指定程序运行的入口类。注意:类名后不要加class扩展名

2.让用户电脑不必安装JRE环境
        通常运行Java程序有个前提条件:用户电脑必须先安装JRE环境。虽然安装JRE环境非常简单,但毕竟多了一步,算是有一点点的瑕疵。这里给出一个不必让用户安装JRE环境的方法,其实现步骤如下:

(1)将原JDK中的“jre”目录复制到“D:\项目文件夹\java1.4.2”目录下(java1.4.2也可换成其他名称)。
     (2)将JDK和JRE从本机卸载掉,这样表示本机没有安装JAVA运行环境。
     (3)修改批处理文件run.bat中的命令为“start java1.4.2\jre\bin\javaw -jar NetDuke.jar”,仅仅是在javaw前加上了一个相对应路径。
      双击run.bat即可在不安装JRE环境的电脑运行此Java应用程序。

3.更进一步的完善
        1、抛弃批处理文件(*.bat)

用批处理文件运行程序似乎不够专业,虽然它足以完成运行任务。但习惯就象一种毒药一旦染上就很难摆脱它的影响,Windows统治下的人们早已经习惯运行扩展名是EXE的程序,用*.bat他们就会感觉别扭。
      我们可以用一个叫JavaLauncher的免费小程序来代替批处理文件去运行Java程序。JavaLauncher的下载网址是:http://www.rolemaker.dk/nonRoleMaker/javalauncher/marner_java_launcher.htm

下载下来的文件是一个名JavaLauncher.zip的压缩包,解压后的目录结构如下:
         1.source目录包含了JavaLauncher的源程序,是用C语言写的
      2.changes.txt是新版的修改说明
      3. launch.exe是主程序
      4. launcher.cfg是配置文件
      5.readme.txt是一些说明和示例
      我们只需要launch.exe、launcher.cfg两个文件,将这两个文件复制到打包文件所在的目录。launcher.cfg是一个仅三行内容的文本文件,将它修改如下:
         .
         .\java1.4.2\jre\bin\javaw.exe
         -jar NetDuke.jar

第一行设置指向JAR包NetDuke.jar的目录,由于launch.exe和NetDuke.jar同在一个目录,所以用“.”即当前目录。
      第二行设置指向jre\bin\javaw.exe的路径。要先将jre目录复制到了java1.4.2子目录中
配置好launcher.cfg后,双击launch.exe即可运行java应用程序。

如果仔佃研究eclipse的启动方式,发现eclipse和JavaLauncher的原理一样:eclipse.exe相当于launch.exe,startup.jar相当于NetDuke.jar。只不过eclipse.exe不象launch.exe要具有通用性,所以它没有*.cfg这样的配置文件,而是将启动信息固化在eclipse.exe中。

4.美化图标
         launch.exe文件的图标太单调了,让我们给它换个好看点的。换程序的图标需要用到一个免费的软件:Resource Hacker,它有中文版,下载网址是:
      http://www.users.on.net/johnson/resourcehacker/
         用Resource Hacker来替换launch.exe的图标的步骤如下:
      (1)运行Resource Hacker。
      (2)单击主菜单“文件→打开”,将launch.exe载入到程序中。
      (3)选择左边的“图标→1→1030”,然后右键单击“1030”项,选择“替换资源…”。然后在弹出窗口中单击“打开新图标文件”,选择一个满意的图标,然后单击“替换”按钮。
       附注:图标文件可以是exe、dll、res、ico,该软件可以从exe、dll、res抽取出图标,本例选择的是Java的吉祥物Duke.ico。
      (4)选择“文件→另存为”,取名NetDuke.exe。
       附注:按理说选择“保存”也是可以的,这时Resource Hacker会将老的launch.exe备份成launch_original.exe。但也许是刷新上有问题,用“保存”方式有时launch.exe无法显示出新图标,但有时又可以。
      (5)最后的目录如下所示,可见NetDuke.exe(也就是launch.exe改了个名称)的图标换成了Java的图标。双击NetDuke.exe即可运行Java应用程序。
       1.java1.4.2(文件夹)
           2.launcher.cfg
           3.NetDuke.exe
           4.NetDuke.jar

5.最后的打包
         发送给用户之前,通常要用WinZip或WinRAR将所有的文件全部打成一个压缩包,然后用户得到这个压缩包后,将其解压缩后即可运行程序,Eclipse软件就是这种方式。

另外大家要注意的几点:
      (1)Java应用程序中用到的资源,它都必须要求写绝对路径,否则在其它机子上就会出现找不到资源。所以一般我们在写程序时就要注意一定要用绝对路径,例如:Toolkit.getDefaultToolkit().getImage(getClass().getResource("文件名")));像这种写法就一定没问题。当然如果要将资源传递给构造器的话就没办法了,例如:NetDuke frame = new NetDuke("资源");这是我们就须要将资源拷贝到项目文件夹下一起打包。
      (2)一般我们的Jre都有60多M,这样和程序一起打包就显得很臃肿。所以要将Jre适当地减肥,具体的作法这样不再累赘,大家在一台还没装JRE的机上测试,将JRE中的一个个文件删除后程序是否可正常运行。还有一个就是rt.jar这个Java类库也要大量的砍伐。

通过以上的操作即可得到使大家满意的一个exe程序包,而不用借助其它软件。希望对大家有帮助。

转载于:https://www.cnblogs.com/alamps/archive/2009/05/26/1490407.html

Java应用程序项目的打包与发行相关推荐

  1. java应用程序利用Exe4j打包exe文件

     java应用程序利用Exe4j打包exe文件 今天上课给学生介绍利用Myeclipse打jar包和exe文件,随便就随手写了下文档供大家参考,希望对大家有用. 1.      使用简介: 把java ...

  2. java 应用程序的打包发行

    Java应用程序项目的打包与发行 作者:starsinsky 日期:2006-08-09 字体大小: 小 中 大   这里主要是讲解一下怎样将 Java程序打包成独立运行的exe程序包,以下这种方法应 ...

  3. 使用 HBuilder X 将微信 小程序 项目 打包

    项目场景: 提示:这里简述项目相关背景: 使用 HBuilder X 将微信 小程序 项目 打包 问题描述 这里描述项目中遇到的问题:` 使用 HBuilder X 将微信 小程序 项目 打包 解决方 ...

  4. 在 NetBeans IDE 6.0 中分析 Java 应用程序性能

    NetBeans IDE 6.0 包含一个强大的性能分析工具,可提供与应用程序运行时行为有关的重要信息.通过 NetBeans 性能分析工具,我们可以方便地在 IDE 中监控应用程序的线程状态.CPU ...

  5. maven项目如何打包运行指定java程序(maven-shade-plugin插件的使用)

    其实maven项目的打包就是将项目代码打包成可执行文件,在maven中有默认的打包插件,但是想要运行指定java程序就要使用maven-shade-plugin插件 maven-jar-plugin是 ...

  6. java程序打包为jar_将Java应用程序打包为一个(或胖)JAR

    java程序打包为jar 这篇文章将针对一个有趣但非常强大的概念:将您的应用程序打包为单个可运行的JAR文件,也称为一个或胖 JAR. 我们习惯了大型WAR归档文件,其中包含所有打包在某些常见文件夹结 ...

  7. 将Java应用程序打包为一个(或胖)JAR

    这篇文章的目标是一个有趣但非常强大的概念:将应用程序打包为单个可运行的JAR文件,也称为一个或胖 JAR文件. 我们习惯了大型WAR归档文件,其中包含所有打包在某些公用文件夹结构下的依赖项. 使用类似 ...

  8. Java桌面程序打包成exe可执行文件

    前言: 我们都知道Java可以将二进制程序打包成可执行jar文件,双击这个jar和双击exe效果是一样一样的,但感觉还是不同.其实将java程序打包成exe也需要这个可执行jar文件. 准备: ecl ...

  9. java拦截器项目应用_使用拦截器分析Java EE应用程序的性能下降/提高

    java拦截器项目应用 在开发具有某些性能要求的Java EE应用程序时,必须在每个发行版之前验证是否满足这些要求. 您可能会想到,哈德森的一项工作每天晚上在某些特定的硬件平台上执行一系列测试测量. ...

最新文章

  1. mysql如何根据业务分表设计_mysql分表分库的应用场景和设计方式
  2. 为什么线程被唤醒后锁会被抢?
  3. linux 创建临时文件目录 mktemp 命令 简介
  4. asp.net mvc请求响应模型原理回顾
  5. php求及格,详解PHP通过递归实现提成计算
  6. 关于struts2在页面请求转发到action的问题
  7. 电脑怎么卸载软件干净_不要说你的电脑卸载很干净!分享两款卸载神器!
  8. java 获取端口号错误_尝试访问SPYDER中的pyspark时,获取错误“异常:Java网关进程在向驱动程序发送其端口号之前已退出”...
  9. matlab绘制庞加莱截面_如何用mathematica或Matlab画弹性摆的庞加莱截面
  10. linux 更改ssh端口_如何在Linux中更改SSH端口-简易指南
  11. IE无法查看源文件原因及应用技巧
  12. mysql 左联left join解析及使用指南
  13. JS JQuery实现简单的鼠标移动动画效果
  14. 微信使用精准位置 wx.getLocation步骤
  15. java pdf替换内容_java PDF批量替换关键词
  16. Windows、Unix、Mac不同操作系统的换行问题 回车符\r和换行符\n
  17. 16年,悲痛又收获的一年
  18. qiankun框架: vue2 主应用访问子应用报错 [import-html-entry]:error occurs 或 died in status LOADING_SOURCE_CODE
  19. RF低噪声放大器设计
  20. 详解HTTPS中的证书

热门文章

  1. 《智能路由器开发指南》——1.1 OpenWrt简介
  2. python终端中退格键,方向键不能使用
  3. 在树莓派中开发 opencv 大型程序
  4. 每日英语:China's New Anti-Graft Website: A Tale of Tigers, Flies and Bath Tubs
  5. 完全企业虚拟化方案-Total Enterprise Virtualization
  6. 如何手动的用jigloo设计器关联java界面文件 jigloo 设计器失去关联解决
  7. Installshield建立IE快捷方式的方法
  8. oracle 11g goldengate DML单向复制测试环境搭建
  9. MQSeries_XA_RMI XAER_RMERR (-3)
  10. 2013年中国高校网购实力排行榜