`
suiyuan0808
  • 浏览: 155267 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

使用InstallShield打包java程序exe以及jdk,安装完成自动运行

阅读更多

     大家都知道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;

0
0
分享到:
评论
1 楼 xiongjie_67 2012-01-29  

相关推荐

    InstallShield 制作安装程序(java web程序)

    本文主要探讨如何使用InstallShield工具来创建一个针对Java Web程序的.exe安装程序,该程序不仅包含了JDK(Java Development Kit),还集成了Resin服务器。 InstallShield是一款功能强大的安装制作软件,它允许...

    J2EE打包详解 Installshield

    对于J2EE应用,InstallShield可以生成包含所有依赖项的安装包,包括Java Development Kit (JDK) 和Java应用程序服务器,如Tomcat。此外,InstallShield还能处理数据库配置,比如SQL Server的设置,包括创建数据库和...

    一个完整的Installshield_12_Premier_Edition安装程序制作实例

    4. **安装后的步骤**:定义安装完成后需要执行的操作,如启动应用程序、创建桌面快捷方式等。 #### 六、测试与发布 1. **测试安装程序**:在不同的环境中测试安装程序,确保所有功能都能正常工作。 2. **优化...

    InstallShield 驱动打包完美的示例

    【InstallShield驱动打包完美的示例】是一篇关于使用InstallShield创建安装程序的详细教程,主要针对初学者,旨在帮助读者掌握如何将软件、OCX、DLL等资源打包整合到驱动中。InstallShield作为一款功能强大的商业...

    如何制作Java可执行程序以及安装程序.doc

    本文将详细介绍三种创建Java可执行程序的方法,并重点讲解如何将Java程序转换为Windows下的.exe文件以及使用JSmooth和NativeJ这两个工具。 1. **直接使用系统Java二进制执行**:如果你的系统已经安装了J2SE(Java 2...

    一个完整的Installshield安装程序实例

    - 在安装完成后,通过调用外部程序完成特定任务。 ```cpp Function PostInstallationTasks LaunchExternalApplication("C:\program\files\myapp\register_service.exe") EndFunction ``` ##### 第八步:卸载...

    制作Java安装程序.doc

    - **简介**:IzPack是一款用于Java平台的安装程序生成器,能够创建出可以在所有安装了Java虚拟机(JVM)的操作系统上运行的安装程序。 - **特点**: - 轻量级且高度可定制。 - 支持多种安装选项,如自定义安装路径等...

    InstallShield 12 中文教程

    本教程基于中文环境,旨在帮助用户掌握如何利用InstallShield 12 创建包含J2EE应用程序的完整安装包,其中包括自动安装Java Development Kit (JDK),Tomcat服务器,以及与SQL Server 2000数据库的集成。 首先,了解...

    exe4j与inno使用完整教程

    安装完成后,运行exe4j程序,按照向导选择打包类型和程序模式,设置exe文件名称和ico图片,然后引入jar包,设置jre基本信息,添加启动画面,最后完成打包。打包完成后,在所选定的文件夹下会生成一个exe可执行文件。...

    一个完整的安装程序实例.doc

    4. **授权与配置**:为了减少重复打包工作,授权文件和配置文件不打包在安装程序中,而是单独存放在光盘上,供不同用户使用。 5. **自动启动**:安装完成后,安装程序会自动启动一个程序,用于向Windows注册服务。 ...

    Installshield12应用教程(Basic Msi项目/J2EE项目)

    Installshield是一款业界广泛使用的应用程序安装包制作工具,尤其在Windows平台上,它为开发者提供了创建、打包和部署软件的便捷途径。本教程将围绕Installshield12版本,深入讲解如何利用其创建Basic MSI项目以及...

Global site tag (gtag.js) - Google Analytics