对于作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的大小.( 这里的40M 可是不包括JRE打包的 只是在生成的MyLoading.exe里有指定JRE路径)
现在我们使用Inno Setup进行压缩并制作一个安装包。

Inno Setup的下载安装请到网上搜索,安装后启动脚本向导,如图所示:
整个过程很简单:

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


然后执行该脚本即可:


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

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

另附inno setup 使用

『Inno Setup 简介』
Inno Setup 是一款免费的安装制作工具,简洁而强大,支持 pascal 脚本,既有适合新手的脚本向导,也有适合高手的的脚本编辑器。
Inno Setup是一个不可多得的安装制作软件。
常见的 INNO setup安装包制作思路:脚本向导(默认)+修改代码(DIY)
『学习任务』

汉化目标:请将示例软件制成安装包,并根据上图蓝色箭头标示位置美化安装包。
下载示例文件、下载安装包资源文件
『操作流程』
一.利用脚本向导生成代码
1.运行INNO setup主程序Compil32.exe,启动“脚本向导”,“下一步”。注意不要选择“创建一个新的空脚本文件”。

2.根据向导,添加软件版本信息,第一行为程序名称,第二行为含有版本号的程序名称:

3.设置程序目录,即安装路径,应用程序默认目录是Program Files(在INNO脚本中表示为{pf}),可根据需要选择目录,如字体则安装在系统盘“Windows”目录下的“Fonts”文件夹中。

4.设置应用程序文件,包括主程序文件及相关文件,INNO脚本向导中的INNO安装程序目录下 “\Examples\MyProg.exe”文件,通过“浏览”选择目标安装包的主程序,如这里的“PDFUnlocker.exe”;紧接着添加其他相关程序,可以通过“添加目录”来操作,注意要包含子目录文件。

5.设置菜单名称及图标,默认使用程序名称作为开始菜单文件夹名称,当然可以根据需要修改。如果允许用户在执行安装过程中改变文件夹名称,可钩选相应选项;其他主可执行文件图标,默认是选中“允许用户创建桌面快捷方式”,如果不允许,可取消选择。

6.设置应用程序文档,即信息文件,包括许可文件等,根据个人习惯添加,本人习惯只有添加一个许可文件,即“汉化说明.txt”文档。

7.设置安装程序语言,即安装包的界面语言,INNO汉化版的默认语言为简体中文。如果要制作多语言的安装程序,可以钩选相应语言

8.编辑器设置,包括安装包的输出目录、安装包名称、安装包图标等,如图所示:

9.完成脚本向导,“完成”后提示是否编译脚本,确定。

二、根据需要,修改脚本代码:
1.修改安装包左侧位图,其大小一般为164x314px,在INNO脚本的[Setup]段添加如下代码:

WizardImageFile=Res\WizardImage.bmp

注:红色的标记为位图路径,可以用相对路径或绝对路径
2.修改安装包右上角位图,其大小一般为55x55px,在INNO脚本的[Setup]段添加如下代码:
WizardSmallImageFile=Res\WizardSmallImage.bmp
3.修改安装包左下角的BeveledLabel内容,常见有两种方式:
(1)临时性修改 在INNO脚本的[Messages]段添加如下代码:

BeveledLabel=软件汉化:高芳銮(Raindy)

(2)永久性修改 用记事本打开INNO目录中的“Default.isl” 修改“BeveledLabel = ”后的内容:

BeveledLabel= 软件汉化:高芳銮(Raindy)

4.修改安装包欢迎标签内容,即WelcomeLabel2
用记事本打开INNO目录中的“Default.isl” 修改“WelcomeLabel2 = ”后的内容:

WelcomeLabel2=正在准备安装 [name/ver]...%n%n推荐您在继续安装前关闭所有其它应用程序。%n%n软件汉化:高芳銮(Raindy)%n%n电子邮件:Raindyok@qq.com%n%n

注:%n在INNO脚本中为换行符
5.安装结束后动行主程序或打开文件等,只需在INNO脚本的[Run]段修改代码:

Filename: {app}\PDFUnlocker.exe; Description: 启动 PDF Unlocker; Flags: nowait postinstall shellexec;
Filename: {app}\汉化说明.txt; Description: 查看说明; Flags: nowait postinstall shellexec

转载于:https://www.cnblogs.com/IamThat/archive/2013/04/16/3023865.html

Java打包JRE于exe中方法相关推荐

  1. python打包工具报错_Pyinstaller打包.py生成.exe的方法和报错总结

    Pyinstaller 打包.py生成.exe的方法和报错总结 简介 有时候自己写了个python脚本觉得挺好用想要分享给小伙伴,但是每次都要帮他们的电脑装个python环境.虽然说装一下也快,但是相 ...

  2. C#:把dll封入exe中方法

    在这个事件中,可以重新为加载失败的程序集手动加载 如果你将dll作为资源文件打包的你的应用程序中(或者类库中) 就可以在硬盘加载失败的时候 从资源文件中加载对应的dll 就像这样: class Pro ...

  3. java打包python到exe文件

    最近想把写的python代码打包,以供没用安装python环境的同事使用,需求如下: 无python环境也可执行 文件尽量少,不要太乱 程序体积尽量小 如果需要更新的话重复类库不用更新 采用方案如下: ...

  4. java隐藏与覆盖_java中方法的隐藏和覆盖问题?

    ok()方法在继承时候发生覆盖(重写)了吗? 发生了.在子类B中的ok()方法拥有父类方法相同的方法名和参数列表(signature),所以在这里发生了重写.调用B类对象的ok()方法会print & ...

  5. SOUI 将 soui-sys-resource.dll 静态编译到exe中方法.

    来源:  https://ui520.cn/bbs/topic/100-1.html soui向导中支持将soui-sys-resource中的资源编译进PE 也可以手动改源码编译进PE,方式如下: ...

  6. lzma打包exe_将多个运行程序打包到一个exe中(Inno )

    ; Script generated by the Inno Setup Script Wizard. ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING ...

  7. java date 过时_java Date中方法toLocaleString过时的替代方案

    DateFormat ddf = DateFormat.getDateInstance(); DateFormat dtf = DateFormat.getTimeInstance(); DateFo ...

  8. 用py2exe打包成一个exe文件

    一.简介py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.exe)的工具,这样,你就可以不用装python而在windows系统上运行这个可执行程序. py2ex ...

  9. java打包exe方案(自动携带jre)

    java的项目一般都是以jar发布,很少打包为可执行程序,因此常见的打包方式也不多,且即使打包之后也需要jre环境才能运行,大部分打包都不会携带jre,需要手动添加jre.这里介绍几种我用过的打包方案 ...

  10. java打包成jar|执行jar包中的main方法

    java打包成jar jar -cvf [jar包的名字] [需要打包的文件] 执行jar包中的main方法 java -jar ****.jar 执行后总是运行指定的主方法,如果 jar 中有多个 ...

最新文章

  1. 路由器上实现DHCP和DHCP中继
  2. 成都华育php笔试题,一套PHP的笔试题
  3. AI:2020年6月22日北京智源大会演讲分享之10:40-11:10Daniel教授《 可微分的加权有限状态机及其机器学习应用》、11:10何晓冬教授《启动“智源-京东”任务导向多模态对话大赛》
  4. Vue中使用vue-quil-editor富文本编辑器+el-upload实现带图片上传到SpringBoot后台接口
  5. Django从理论到实战(part32)--外键删除
  6. Android Studio --- [学习笔记]RadioButton、CheckBox、ImageView、ListView、TCP的三次握手
  7. linux文件内容打印成二进制,如何在二进制文件中只打印可打印字符(相当于Linux下的字符串)?...
  8. HTTP 数据包头解析
  9. 小谈c#数据库存取图片的方式
  10. 如何使用Visual Studio无需成本即可实现连续集成
  11. 1095 解码PAT准考证 (25 point(s)) - PAT乙级真题
  12. 数据分析 一文搞懂什么是RFM模型
  13. 显卡的测试软件是什么,你的显卡是什么水平,用这个软件就知道了
  14. LaTex常用特殊符号对应表
  15. 现实迷途 第二十章 峰回路转
  16. 2010Execl冻结多行
  17. java string时间类型天数运算
  18. 关键词生成的相关资源
  19. 令人感动的电影---虎兄虎弟
  20. 《软件工程之美》打卡第七周

热门文章

  1. Keil 安装 配置
  2. 自动驾驶实习/校招 增补企业名单
  3. 新丰机器人_韶关新丰:智能巡检开启配电网运维新模式
  4. bat 注释,echo off 和 rem 和 :
  5. 用Python+PIL将多个jpg图像批量合并成一个pdf文件
  6. Verilog CIC 滤波器设计(代码自取)
  7. 关于一个正弦波程序表格生成器
  8. SODB RBSP EBSP的区别
  9. virtualbox安装Windows 7 64位旗舰版 (包含镜像文件)
  10. MATLAB的最速下降法实现