exe 安装包
序,比较冷门的东西,心情有些失落。但之前学过 google 的 web 富客户端框架
gwt-ext, 加上大学学了些 MFC, 上手 java swing 还是挺快的,项目马上到打包
程序阶段, 就把这两天学习 java swing+MySQL 打包学习到的东西拿出来分享下。
1、 准备 installanywhere 破解版,网上也有破解的方法,建议不要下载那些网
站的破解软件,捆绑了好多百度推广什么的广告。
2、 下载绿色版的 MySQL 数据库 http://dev.mysql.com/downloads/mysql/ 这
个网页的底部可以下载绿色版的 MySQL
以下代码:
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8 防止数据库中文乱码,然后保存为 my.ini 文
件。
4、 将 java 工程和 mysql 放到一个 JavaProject 的目录下,去掉 java 的源码文
件夹 src,使用编译好的 bin 目录( .class 文件) ,要打包的 java swing
程序和 MySQL 目录如下图:
Template,选择保存打包该程序的安装文件路径
6、 选择 Advanced Designer,设计打包应用程序的相关参数和安装文件的界面。
来到的配置界面如下:
使
配置该程序安装器的标题、 Product Name 作为该程序的安装目录, installer用中文不行,会被重置为 install.exe,因此 installer Name 和 Product Name最好是使用英文,以免出现不必要的问题。配置安装器界面的语言为中文
还有一些比较细节的配置比如 jdk 的版本什么的大家自己熟悉下应该不是问题,installanywhere2009 默认支持的 jdk 版本在 1.4+,最好打包 jdk1.6win32 的。在 installer UI 配置安装器的背景。
7、 这一步最关键,主要配置在安装程序过程中安装 MySQL 服务,以及启动 MySQL服务(一般的用户不懂 MySQL,因此我们得在打包安装包的时候配置安装过程就将 MySQL 服务安装好,并启动)首先将要打包的目录下的文件导入增加进来,就是前面创建的 JavaProject 目录下所有的文件,不包括 JavaProject 目录。
目录下新增 ActionGroup, 不要建到其他目录下)
( 2)新建一个 Execute Script/Bach file(在 Action Group 上右键单击,选择新建 Execute Script/Bach file,
以下新增 Action 操作也是如此)然后再下面填充内容(直接拷贝就行了):
Script: REG Delete
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/MySQL /v
ImagePath /f
( 3)新建第二个 Execute Script/Bach file
里面然后再下面填充内容(直接拷贝就行了):
Comment: MySQL 注册
Script: Call "$USER_INSTALL_DIR$/MySQL/bin/mysqld.exe" -install
MySQL --defaults-file="$USER_INSTALL_DIR$/MySQL/my.ini"
( 4)新建第三个 Execute Script/Bach file
里面然后再下面填充内容(直接拷贝就行了):
Comment: 添加服务执行文件项
Script: REG add
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/MySQL /v
ImagePath /t REG_EXPAND_SZ /d "$USER_INSTALL_DIR$/MySQL/bin/mysqld.exe
/"--defaults-file=$USER_INSTALL_DIR$/MySQL/my.ini/" MySQL"
( 5)新建 startWindowsService,配置为启动MySQL服务:
8、 添加安装过程的动作后再添加准备卸载时发生的动作,来到如下界面:配置在卸载前停止 MySQL 服务,防止 MySQL 服务在卸载的时候可能残留,一般的用户解决不了这个问题。因此,安装这类程序前最好将 MySQL 服务卸载完全(这又需要比较专业的人才搞得定,也是这种程序的弊端)。
平台下,将带虚拟机的安装包和不带虚拟机的安装包各打包一份, 然后点击
Build Project 即可:
10、问题:该程序安装后,如果不是熟悉MySQL相关操作的,卸载MySQL服务不完全,在计算机服务里面MySQL服务的原始目录依然保存着,针对熟悉MySQL服务安装的人解决方案是在卸载该程序之前在计算机服务里面将MySQL服务停止掉,找到该程序MySQL的bin目录,在cmd中通过mysqldremove MySQL将MySQL服务彻底删除,对于非专业人士只有在写在打包安装包的时候写一个比较靠谱的Windows执行脚本将MySQL服务完全卸载掉,本人在这一点水平有限没能搞定,很期待这方面比较厉害的指导下写一个脚本搞定这问题。
不足之处还请大家多多指教!