Java应用程序项目的打包与发行

作者:starsinsky 日期:2006-08-09

字体大小: 小 中 大
 

这里主要是讲解一下怎样将 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程序包,而不用借助其它软件。希望对大家有帮助。

[本日志由 starsinsky

转载于:https://www.cnblogs.com/zengsong-restService/archive/2012/12/27/2835983.html

java 应用程序的打包发行相关推荐

  1. Java应用程序项目的打包与发行

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

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

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

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

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

  4. 用JEP 343打包工具,构建自包含、可安装的Java应用程序

    OpenJDK社区发布了JEP 343:打包工具的早期访问版本.JEP 343:打包工具,又名jpackage,是打包自包含Java应用程序和Java运行时环境的新工具.这个基于JavaFX java ...

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

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

  6. eclipse中的java包awt_Eclipse中打包java程序

    Java应用程序可以脱离Eclipse运行,但在运行之前要把应用程序打成一个JAR包,Eclipse下打包的方式方法和标准的AWT/SWUNG程序基本一样,主要有以下几点: a.MANIFEST.MF ...

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

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

  8. Java桌面程序打包全过程

    最近需要用Java写一个桌面的程序,考虑到环境要一起打包,参照别人和自己的操作过程写一个文,主要是为记录. 本文主要将以下两个博客内容放在一起,相对全面,在此谢谢两位 https://www.cnbl ...

  9. 使用exej4把Java 的jar包打包成exe小程序工具分享

    使用exej4把Java 的jar包打包成exe小程序的工具下载 此处给个exej4的目前最新版的安装包(已经包含注册码)下载(国外官网下载东西,速度之满大家都是知道的): 百度网盘: 链接:http ...

最新文章

  1. Can't create handler inside thread Thread that has not called Looper.prepare()
  2. Java通过JDBC来连接SqlServer数据库
  3. redis源码客户端和服务端通信过程
  4. go语言高性能缓存组件ccache分析
  5. mysql慢查询分析
  6. LRU算法及Java实现
  7. stl中Priority Queues(优先队列)的基本用法
  8. void *mmap(void *start,size_t length,int prot,int flags,int fd,off_t offsize);
  9. stats | 概率分布与随机数生成(一)——离散型分布
  10. menuStrip1动态添加菜单及快捷键
  11. UVa 10325 - The Lottery
  12. Atitit learn by need 需要的时候学与预先学习知识图谱路线图
  13. arraylist长度_面经手册 第7篇ArrayList也这么多知识?一个指定位置插入就把谢飞机面晕了!...
  14. java支付管理有源码_一款java版可接入微信、支付宝的三方支付系统项目
  15. vissim免修改时间工具_视频剪辑工具premiere最基础使用教程
  16. SVN版本控制介绍与使用(超详细版)
  17. sis新地址_坚若磐石不掉速,老平台升级新选择,入手昱联Asint 500G SSD
  18. 软考高级-系统架构设计师经验分享
  19. 论文笔记——Comparing to Learn
  20. 如何让搜索引擎收录我的站点

热门文章

  1. javadrawstring设置字符大小_LaTex学术写作——编辑文档格式 设置论文标题与摘要...
  2. Python PIL.Image和OpenCV图像格式相互转换
  3. matlab 绘制三维图并标注每个点的坐标
  4. yii表单ajax验证,yii2 modal弹窗之ActiveForm ajax表单异步验证
  5. html万年历闹钟怎么取消,万年历如何取消整点报时,他上面有四个键,分...
  6. php 过滤危险字符,php过滤特殊危险字符的总结
  7. 阻止浏览器自动填充input密码框
  8. Python_基础_5
  9. 无限网络无限连接掉网的解决
  10. 【Linux】3.dpkg、apt安装卸载软件