一、简介

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

二、具体打包步骤

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

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

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

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

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

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

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

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

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

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

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

1.选择新建一个脚本。

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

3.点击下一步。

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

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

6.等待编译

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

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

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

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

使用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”。

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

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

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

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

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

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

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

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

六、致谢

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

附文章地址:

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桌面程序的一键安装包的更多相关文章

  1. 使用InstallAnywhere7.1制作Java exe程序安装包

    [转[使用InstallAnywhere7.1制作Java exe程序安装包 使用InstallAnywhere7.1制作Java exe程序安装包 对于已经完成的Java应用程序开发项目,从商业化角 ...

  2. lnmp、lamp、lnmpa一键安装包(Updated: 2015-10-25)

    lnmp.lamp.lnmpa一键安装包(Updated: 2015-10-25) 2014-12-26 Posted by yeho 这个脚本是使用shell编写,为了快速在生产环境上部署lnmp/ ...

  3. (实例篇)LNMP 1.4一键安装包,安装教程

    http://mp.weixin.qq.com/s/l6ijKBwD6tt8jkZytWEIsw https://lnmp.org/download.html 2017-09-11 学习与分享 PHP ...

  4. lnmp、lamp、lnmpa一键安装包(Updated: 2016-4-12)

    lnmp.lamp.lnmpa一键安装包(Updated: 2016-4-12)   文章目录 脚本特性 安装步骤 如何添加虚拟主机? 如何删除虚拟主机? 如何管理ftp账号? 数据备份 如何管理服务 ...

  5. LNMP-Linux下Nginx+MySQL+PHP+phpMyAdmin+eAcelerator一键安装包

    LNMP一键安装包是一个用Linux Shell编写的可以为CentOS/RadHat.Debian/Ubuntu VPS(VDS)或独立主机安装LNMP(Nginx.MySQL.PHP.phpMyA ...

  6. LNMP安装一键安装包

    系统需求: CentOS/Debian/Ubuntu Linux系统 需要2GB以上硬盘剩余空间 128M以上内存,OpenVZ的建议192MB以上(小内存请勿使用64位系统) VPS或服务器必须已经 ...

  7. vmware workstation11+centos7+lnmp一键安装包 环境搭建

    vmware workstation11 1.下载:http://pan.baidu.com/s/1gecipOJ 2.安装:直接下一步. centos7 1.下载:网易镜像 http://mirro ...

  8. CentOS下Web服务器环境搭建LNMP一键安装包

    CentOS下Web服务器环境搭建LNMP一键安装包 时间:2014-09-04 00:50来源:osyunwei.com 作者:osyunwei.com 举报 点击:3797次 最新版本:lnmp- ...

  9. 常用PHP运行环境一键安装包

    PHP的程序很火,像博客:Wordpress.论坛:Discuz!.SNS:UCenter Home.CMS:DedeCMS等等都是比较流行的PHP程序,大家都在使用PHP类的程序,但对于很多初学者来 ...

随机推荐

  1. upload-labs通关记录

    upload-labs通关记录 一句话木马解读 一般的解题步骤 或者可以直接用字典爆破一下 https://github.com/TheKingOfDuck/fuzzDicts/blob/master ...

  2. java list 分页

    /** * * @param list * @param pageNum * @param pageSize * @param <T> * @return 返回当前页数据 */ publi ...

  3. 最常见的安全漏洞– Acunetix Web应用程序漏洞报告2021

    每年,Acunetix都会为您提供最常见的Web安全漏洞和网络外围漏洞的分析.我们的年度Web应用程序漏洞报告(现已成为Invicti AppSec指标的一部分)是基于从Acunetix在线获得的真实 ...

  4. 42. Trapping Rain Water [dp][stack]

    description: Given n non-negative integers representing an elevation map where the width of each bar ...

  5. 第九章 身体质量指数BMI的python实现

    身体质量指数BMI:对身体质量的刻画(Body Mass Index) 国际上常用的衡量人体肥胖和健康程度的重要标准,主要用于统计分析 定义: BMI=体重(kg)/身高^2(m2) 提出问题: 实例 ...

  6. Python基础4--数据类型

    一.数据类型是什么鬼? 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同 ...

  7. CentOS 命令提示符

    命令提示符的设置就是对PS1的配置: export PS1="\[\e[35;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\[\e[36;40m\]\h  \[\e ...

  8. python chrome

    from selenium.webdriver.chrome.options import Options from selenium import webdriver wd = webdriver. ...

  9. 夏壹队——nabcd

    我们团队项目名称是TD校园通,无课表查询你作为主要功能,是一个亮眼的功能. 我们的无课表查询功能主要解决大家平时上自习还要到教学楼拍照,教室课程情况也有断更的时候,而这个功能就解决大家的这个功能,能够 ...

  10. 使用python对工作簿每个sheet表进行数据可视化展示(本案例是从第2个sheet开始循环读取也就是索引为1的表)

    # 导入相关模块from pyecharts.charts import Barfrom pyecharts import options as optsfrom pyecharts.charts i ...