大家都知道java生成的exe如果没有jre是无法运行的,如果客户自己安装setup.exe以后自己配置java环境,那客户一定会骂你这个软件怎么这么差,呵呵。所以我今天要说的使用InstallShield打包将java exe jdk(或jre)一起打包安装,安装完成自动执行EXE.至于如何打包exe请参考我前面写的<使用Fat_jar和exe4J打包java应用程序为Exe文件>:http://suiyuan0808.iteye.com/blog/852231.我把我之前做的打包代码拷贝出来供大家参考。这段代码需要写到InstallShield工程的Setup.Rul里面去。下面语言有点像vb语言
/*
*author:Ldfu
*/
#include "ifx.h"
//开始安装时候会自动检查jdk环境并安装
function OnBegin()
begin
Disable (BACKBUTTON);
if(!MAINTENANCE)then
SdLicense2 ("License ", "", "", SUPPORTDIR ^ "sn.txt", FALSE);
endif ;
//如果大家的jdk和我的不一样请修改红色粗体部分即可。
RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
//这里意思在注册表里面没有找到jdk注册信息,则安装jdk
if (RegDBKeyExist ("SOFTWARE\\JavaSoft\\Java Development Kit\\1.6.0_04") < 0) then
if(LaunchAppAndWait (SUPPORTDIR^"jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008.exe","", LAAW_OPTION_WAIT)<0)then
MessageBox ("您的系统没有安装 JDK 1.6.0_04 t! ", INFORMATION);
endif;
endif;
end;
//安装结束之前,设置java_home环境变量
function OnEnd()
STRING szFeatureName;
STRING serviceTarget;
STRING szDocFile;
STRING szKey;
NUMBER nvType;
STRING svValue;
NUMBER nvSize;
begin
//检查是否已经安装jdk
szKey = "SOFTWARE\\JavaSoft\\Java Development Kit\\1.6.0_10";
RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
//如果已经安装则设置环境变量 java_home
if (RegDBKeyExist(szKey)=1) then//如果该注册表值存在
if(RegDBGetKeyValueEx(szKey,"JavaHome",nvType,svValue,nvSize)=0) then
szKey = "SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment";
if(RegDBSetKeyValueEx(szKey, "JAVA_HOME", REGDB_STRING, svValue, -1)<0) then
MessageBox ("Javahome create failed, please set it manually!", SEVERE);
endif;
endif;
endif;
//最后启动您的exe文件
szFeatureName="main";
serviceTarget=TARGETDIR^"wangdianzhushou.exe";
if (FeatureIsItemSelected(MEDIA, szFeatureName)=1) then
if(FindFile(TARGETDIR, " wangdianzhushou.exe ", szDocFile)=0) then
if (LaunchApp (serviceTarget, "") < 0) then
MessageBox ("无法启动程序 "+serviceTarget+".", SEVERE);
endif;
endif;
endif;
end;
分享到:
相关推荐
本文主要探讨如何使用InstallShield工具来创建一个针对Java Web程序的.exe安装程序,该程序不仅包含了JDK(Java Development Kit),还集成了Resin服务器。 InstallShield是一款功能强大的安装制作软件,它允许...
对于J2EE应用,InstallShield可以生成包含所有依赖项的安装包,包括Java Development Kit (JDK) 和Java应用程序服务器,如Tomcat。此外,InstallShield还能处理数据库配置,比如SQL Server的设置,包括创建数据库和...
4. **安装后的步骤**:定义安装完成后需要执行的操作,如启动应用程序、创建桌面快捷方式等。 #### 六、测试与发布 1. **测试安装程序**:在不同的环境中测试安装程序,确保所有功能都能正常工作。 2. **优化...
【InstallShield驱动打包完美的示例】是一篇关于使用InstallShield创建安装程序的详细教程,主要针对初学者,旨在帮助读者掌握如何将软件、OCX、DLL等资源打包整合到驱动中。InstallShield作为一款功能强大的商业...
本文将详细介绍三种创建Java可执行程序的方法,并重点讲解如何将Java程序转换为Windows下的.exe文件以及使用JSmooth和NativeJ这两个工具。 1. **直接使用系统Java二进制执行**:如果你的系统已经安装了J2SE(Java 2...
- 在安装完成后,通过调用外部程序完成特定任务。 ```cpp Function PostInstallationTasks LaunchExternalApplication("C:\program\files\myapp\register_service.exe") EndFunction ``` ##### 第八步:卸载...
- **简介**:IzPack是一款用于Java平台的安装程序生成器,能够创建出可以在所有安装了Java虚拟机(JVM)的操作系统上运行的安装程序。 - **特点**: - 轻量级且高度可定制。 - 支持多种安装选项,如自定义安装路径等...
本教程基于中文环境,旨在帮助用户掌握如何利用InstallShield 12 创建包含J2EE应用程序的完整安装包,其中包括自动安装Java Development Kit (JDK),Tomcat服务器,以及与SQL Server 2000数据库的集成。 首先,了解...
安装完成后,运行exe4j程序,按照向导选择打包类型和程序模式,设置exe文件名称和ico图片,然后引入jar包,设置jre基本信息,添加启动画面,最后完成打包。打包完成后,在所选定的文件夹下会生成一个exe可执行文件。...
4. **授权与配置**:为了减少重复打包工作,授权文件和配置文件不打包在安装程序中,而是单独存放在光盘上,供不同用户使用。 5. **自动启动**:安装完成后,安装程序会自动启动一个程序,用于向Windows注册服务。 ...
Installshield是一款业界广泛使用的应用程序安装包制作工具,尤其在Windows平台上,它为开发者提供了创建、打包和部署软件的便捷途径。本教程将围绕Installshield12版本,深入讲解如何利用其创建Basic MSI项目以及...