对于作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桌面应用了。

JAVA打包软件exe4j使用教程相关推荐

  1. java打包软件静默安装_常用软件的静默安装方法介绍

    有时我们在安装程序的时候,希望是静默安装的,不显示下一步下一步,这编访问来教大家如何来操作,现在常用的制作安装程序的软件有,  Microsoft Windows Installer  , Windo ...

  2. InstallShield Limited Edition 打包软件安装包教程

    从Visual Studio 2012开始,微软就把自家原来的安装与部署工具彻底废掉了,转而让大家去安装使用第三方的打包工具"InstallShield Limited Edition fo ...

  3. netbeans使用教程_NetBeans 7.4的本机Java打包

    netbeans使用教程 成为" NetBeans 74 NewAndNoteworthy "页面的NetBeans 7.4的新功能之一是"本机打包",在该页面 ...

  4. java培训教程分享:Java编写软件代码自动提示功能

    本期的java培训教程分享主要是介绍的java编写软件代码的一个自动提示功能,很多零基础和初学java的同学们对这一块还不是很了解,Eclipse for android 实现代码自动提示智能提示功能 ...

  5. Java打包生成exe(使用exe4j和inno setup)

    Java打包生成exe 生成jar 先使用eclipse生成可执行的jar[可执行的jar包含内容更全面,包括指定主类的.mf] Exe4j的使用 一定要可执行jar进行打包. Project typ ...

  6. html5一键打包成苹果软件,GDB苹果网页一键打包工具如何使用?GDB苹果网页一键打包工具安装使用教程...

    4.图标/启动图设置(可选) 1)软件图标 可以选择png或者jpg或者bmp图片作为APP的图标,建议使用512*512尺寸的png图片,如果使用其他尺寸的图片,则会被缩放拉伸 2)启动图片: 可以 ...

  7. Visual Studio2012打包软件InstallShield Limited Edition安装教程

    之前用C#写了一个串口助手,用来读取stm32中的数据,并在C#写的上位机进行解包,但是发现程序只能在自己电脑上使用,不能在别的电脑上使用,发现原来需要将程序进行打包.VS2012取消了打包软件的默认 ...

  8. 【QT】QT生成.exe安装包详细全文(保姆级教程)--打包软件及问题大全

    缺少.dll文件的朋友,请跳转到我的另一篇文章"QT编译后的.exe文件运行时缺少一些.dll文件的解决办法[超详细教程,新手必备]",把问题解决再往下看. 一.前言: 最近,一个 ...

  9. 内含JAVA简单概括和JAVA所需安装的软件和详细教程,想学习JAVA无从下手,这篇文章带你迈出第一步

    本文大致概括了JAVA编程语言的简史和特点,主要介绍了JAVA开发环境安装,涉及JDK,Sublime Text IntelliJ IDEA三个软件的简单介绍,安装和使用,最后编写了第一个JAVA代码 ...

最新文章

  1. WP8.1开发中复杂JSON绑定数据时的方法
  2. 七日Python之路--第八天
  3. Openstack安装过程中出现的一些问题及解决
  4. sublime安装Codecs33
  5. YbtOJ#20240-[冲刺NOIP2020模拟赛Day10]弱者对决【笛卡尔树,区间dp】
  6. 浪潮服务器nf5280m2安装系统,破茧化蝶之作 浪潮NF5280M2服务器评测
  7. Sqlit--学习教程(基本操作1)
  8. STM32F103 TIM4定时器
  9. js中判断数组中是否含有某个字符串方法
  10. struts 进不了action方法
  11. HTML URL 编码参考手册:ASCII 编码参考手册
  12. 计算机化分析原理波涛,(波涛)证券期货投资计算机化技术分析原理OCR.pdf
  13. java编写蠕虫病毒_教大家编写蠕虫病毒
  14. OpenSocial版的51虚拟支付--ROCKYOU
  15. 可汗学院公开课:线性代数笔记-11-求解三元方程组
  16. ibm服务器开机显示如何设置,IBM服务器开机进入WEBBIOS界面配置RAID
  17. 2021强网杯 Web赌徒 WP
  18. win10打开蓝牙_Win10系统中蓝牙鼠标可以配对却无法使用应该如何解决?
  19. MYSQL 命令中常出现的error - 1046 1064 1264
  20. C语言实现3个数的最小公倍数和最大公约数

热门文章

  1. php水果百科动态网站毕业设计源码060917
  2. CSS实现水平垂直居中的几种方式
  3. vb.net 教程 12-6 webbrowser 文本编辑器 1
  4. Java语言底层架构
  5. 腾讯服务器显示未绑定扣费中,腾讯云费用账号欠费是否影响云服务资源使用
  6. 迭代器模式实例与解析---实例:电视机遥控器
  7. 真刺激!电容放电,火花四溅!
  8. Linux程序下载到板子上,uclinux系统移植到bf561板子上过程
  9. SSM+信息安全资讯网站 毕业设计-附源码191651
  10. 3DMARK05截图泄漏