制作Java桌面程序的一键安装包

摘要:
添加好类路径后一定要选择”MainClass”,否则打包后的程序也是不能执行的。记住要准备在64位操作系统下使用的JRE包含在文件夹中。

一、简介

这个打包程序主要包含了对Java程序的普通打包、对程序的管理员权限设置。因为自己打包的时候要求程序在32位操作系统和64位操作系统下都能使用,所以有些打包步骤和设置都不相同。打包过程中主要使用到的软件有exe4j、Inno Setup;修改用户权限时使用到了eXeScope.exe和ResHacker.exe。

二、具体打包步骤

1.准备好要打包的完整程序。在这个程序中包含着JRE,打包后的程序用户轻松点击就能运行。

制作Java桌面程序的一键安装包第1张

2.使用exe4j制作一个exe执行文件,并指定自带的JRE。以下为exe4j启动界面,点击下一步开始创建配置文件。

制作Java桌面程序的一键安装包第2张

3.选择类型,在这里选择第一个,保证程序仍具有跨平台特性。如果选择第二个,可以把程序完全编译成exe文件,可以更好地保护程序不被反编译。制作Java桌面程序的一键安装包第3张

4.设置程序的短文件名、源文件夹路径(比如我的文件夹放在桌面路径为C:\Users\Administrator\Desktop\MyExample),以及生成的exe文件存放的目录,exe存放目录必须指定到源文件夹下。

制作Java桌面程序的一键安装包第4张

5.为生成的exe文件命名,也可以给它指定一个ico类型的图标。其他设置如图。

制作Java桌面程序的一键安装包第5张

6.把程序中所用到的类路径添加上去,然后指定程序的启动类,其他如果没有必要,可不填。

制作Java桌面程序的一键安装包第6张

基本上程序使用到的Jar文件都要添加,可逐个添加,也可以添加整个文件夹或者使用系统环境变量,为了让程序在其他地方也能完美运行,建议使用相对路径,并且不要使用环境变量。添加好类路径后一定要选择”Main Class”,否则打包后的程序也是不能执行的。

制作Java桌面程序的一键安装包第7张

7.把自带的JRE包含到程序中,先设置我们程序需要的JRE版本。

制作Java桌面程序的一键安装包第8张

8.移除默认选项,添加自带的JRE。

制作Java桌面程序的一键安装包第9张

制作Java桌面程序的一键安装包第10张

制作Java桌面程序的一键安装包第11张

9.接下来直接点击下一步即可,直到最后一步完成,可在目录下找到生成的exe文件。

制作Java桌面程序的一键安装包第12张

制作Java桌面程序的一键安装包第13张

三、使用Inno Setup进行压缩并制作一个安装包

1.选择新建一个脚本。

制作Java桌面程序的一键安装包第14张

2.填写应用程序名、版本号、程序发布者以及应用程序网站。

制作Java桌面程序的一键安装包第15张

3.点击下一步。

制作Java桌面程序的一键安装包第16张

4.指定程序的启动文件,即刚刚用exe4j创建的exe文件,并将整个程序目录都包含进去。

制作Java桌面程序的一键安装包第17张

5.接下来的几步都可以直接选择下一步。完成后,运行这个脚本。

制作Java桌面程序的一键安装包第18张

6.等待编译

制作Java桌面程序的一键安装包第19张

7.编译完成后在默认输出目录里可以找到生成的安装包。

制作Java桌面程序的一键安装包第20张

8.双击安装包,根据提示就可以完成安装过程。最终我安装好的程序如图。

制作Java桌面程序的一键安装包第21张

四、给用户添加管理员权限。

对于有些程序来说,需要管理员权限才能正常运行。虽然用户在使用时可以选择“以管理员身份运行”,但是这样会影响用户体验。在这里介绍一下在打包的过程中添加管理员权限的方法。

使用Inno Setup生成脚本后,在[Setup]节点添加PrivilegesRequired=admin。然后编译脚本,这一次生成的exe文件,在安装后能够直接以管理员权限正常运行。

依靠以上的方法我的程序在32位操作系统下能够正常运行,但是在64位操作系统下不能够正常运行。因为我打包的时候JRE是32位下的,在exe4j下打包时也需要选择打包的程序是32位还是64位。

五、打包64位操作系统下使用的程序

前面的步骤与二中的具体打包步骤相似,为程序命名的步骤起有所区别。记住要准备在64位操作系统下使用的JRE包含在文件夹中。

1.为了与32位打包过程有所区别,在命名后都添加了标志。填好相关内容后选择“Advanced Options”中的”32-bit or 64-bit”。

制作Java桌面程序的一键安装包第22张

2.勾选当前选项,如果不勾选的话还是生成的32位程序。

制作Java桌面程序的一键安装包第23张

3.设置权限,选择第三个即为管理员权限。

制作Java桌面程序的一键安装包第24张

4.接下来的步骤和打包32位程序相同。直到生成exe文件。注意添加JRE时一定要添加64位的。

5.使用Inno Setup生成安装包时,修改管理员权限除去上述步骤还应该添加一些步骤如下。

[1] 找到Inno Setup的安装路径,如C:\Program Files\Inno Setup 5,找到SetupLdr.e32文件。

制作Java桌面程序的一键安装包第25张

[2] 下载使用ResHacker.exe可以对这个文件进行修改。修改后注意保存。

制作Java桌面程序的一键安装包第26张

6.生成的64位程序安装步骤与32位程序安装步骤一样,在64位下能完美运行。

64位下打包赋予了 管理员权限后图标变成了如下图,而在32位系统下图标并没有什么变化,只能在使用过程中感受到不同。

制作Java桌面程序的一键安装包第27张

六、致谢

在完成打包过程中,读了很多相关文章,感谢作者提供的帮助。

附文章地址:

http://www.blogjava.net/huliqing/archive/2008/04/18/193907.html

http://www.cnblogs.com/walker-lc/articles/3470679.html

http://www.cnblogs.com/SnailProgramer/p/4243666.html

http://blog.csdn.net/inputuconfirmcode/article/details/39485815

免责声明:文章转载自《制作Java桌面程序的一键安装包》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇JavaScript和Ajax部分(4)linux之bash shell下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

Windows 7集成IE11(离线安装包、补丁)

当Win7系统需要集成IE11时,我们需要提前输入六个补丁KB2731771、KB2786081、KB2834140、KB2670838、KB2729094、KB2533623332位★ 百度网盘64位★ 百度网盘。我们需要输入这六个补丁才能更改IE11。此外,我们还需要32位的IE11离线安装包★ 百度网盘64位★ 百度网盘。这六个补丁是安装IE11所必需...

TortoiseGit安装、配置(Git 小乌龟安装)

然后关闭5ToroiseGit。以克隆验证中心项目为例,验证TortoiseGit配置是否正确。注意:在克隆代码之前,请确保您具有相关的项目代码权限。如果您没有权限,请具有主权限的同事帮助您分配登录gitlab的权限,在本地目标下载目录中获取SSH链接地址,右键单击--˃TortoiseGit--˃克隆,然后将SSH链接地址粘贴到URL,单击“确定”确认项目...

SAP OBA1 外币评估是基于财务目的,为了不影响报表而做的估算值,在月末进行评估,在下月初进行冲回。

评估报告按行项目显示结果。4.评估策略外币的未清项评估有三种策略:1)期末评估,下期初冲回。因此目前每年底改变外币汇率时进行外币余额和未清项的评估,不冲回。②资产负债表指定日,一般是一年的最后一天。③资产负债表准备评估。如果选择该项,则视为年结评估,不能产生冲销凭证。外币未清项评估是按借贷分别统计后做的调整凭证。...

JavaScript算法学习:获取字符串最后一位方法及判断是否以指定字符串开始或结尾

Str.substr,其中start是必需的参数,表示坐标的起始位置。正值在正方向计数,负值在反方向计数,长度是可选参数,表示从起始位置开始计数的数字。...

安装samba服务器实现Linux mint和Windows共享文件

安装samba服务器以实现Linuxmint和Windows共享文件。在Linuxmint普通用户下执行命令:sudoapt-geinstallsamba、installsamba和打开smb。conf配置文件,并执行命令gedit/etc/samba/smb-Coff,如果您想安装gedit(sudoapt-geinstallgedit),还可以使用Lin...

selenium自动化之鼠标操作

,selenium为我们提供了一个处理此类事件的类——ActionChains。ActionChains可以模拟鼠标操作,例如单击、双击、右键单击、拖动等。鼠标移动时演示页面的截图:demo1.使用鼠标移动到WriteonOver按钮的顶部。python脚本如下:读取鼠标移动代码,首先定义浏览器驱动程序,最大化窗口,打开测试页面URL,定位到测试按钮顶部,定...