使用Inno Setup 打包jdk、mysql、tomcat、webapp等为一个exe安装包(转)

  之前一直都没涉及到打包安装方面的东西,都是另一个同事负责的,使用的工具(installshield)也比较高大上一点,可是后来他离职以后接受的同事也只能是在这个基础上做个简单的配置,然后打包,可是现在做的项目和原来的完全不一样以后就不能使用之前的了,只能是自己硬着头皮来弄个比较简单快捷的了。

  切入正题,如标题所述使用inno setup来打包一个java web 相关的内容为一个exe,.net web类似,这个工具可以在网上直接找到下载,有汉化版的,并且里面也有帮助手册可以参考。把里面的一些敏感信息已经做了替代,这些都是可以根据你自己情况来修改的。下面直接上干货。

  • 打包和发布的内容
    jdk(1.6/1.7/1.8)、mysql(5.5~)、tomcat(6.0/7.0/8.0)、ftp服务器、webapp、.Net服务、C++服务(请诸位无视项目中技术的复杂行,都是历史原因)
    打包脚本和bat脚本中涉及到,文件拷贝、ini配置文件修改、xml配置文件修改、服务安装停止启动、.net服务安装、环境变量配置、数据库初始化等,唯独缺少注册表和防火墙配置(%>_<%)
  • 打包脚本

      1 ; 脚本由 Inno Setup 脚本向导 生成!
      2 ; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档!
      3
      4 #define MyAppName "abc"
      5 #define MyAppVersion "1.0"
      6 #define MyAppPublisher "aaa"
      7 #define MyAppURL "http://www.abc.com/"
      8
      9 [Setup]
     10 ; 注: AppId的值为单独标识该应用程序。
     11 ; 不要为其他安装程序使用相同的AppId值。
     12 ; (生成新的GUID,点击 工具|在IDE中生成GUID。)
     13 AppId={{9E044575-9CD9-4751-B0BE-F6758BA94548}
     14 AppName={#MyAppName}
     15 AppVersion={#MyAppVersion}
     16 ;AppVerName={#MyAppName} {#MyAppVersion}
     17 AppPublisher={#MyAppPublisher}
     18 AppPublisherURL={#MyAppURL}
     19 AppSupportURL={#MyAppURL}
     20 AppUpdatesURL={#MyAppURL}
     21 DefaultDirName={pf}\{#MyAppName}
     22 DefaultGroupName=XX管理软件(abc)
     23 AllowNoIcons=yes
     24 OutputBaseFilename=setup
     25 Compression=lzma
     26 SolidCompression=yes
     27 [Files]
     28 ;拷贝tomcat
     29 Source:"Source\apache-tomcat-6.0.41\*";DestDir:"{app}\tomcat6.0";Flags:igNoreversion recursesubdirs createallsubdirs
     30 ;拷贝jdk
     31 Source:"Source\jdk1.6.0_43\*";DestDir:"{app}\jdk1.6";Flags:igNoreversion recursesubdirs createallsubdirs
     32 ;拷贝mysql
     33 Source:"Source\MySql5.5\*";DestDir:"{app}\MySql5.5";Flags:igNoreversion recursesubdirs createallsubdirs
     34 ;拷贝源代码
     35 Source:"Source\abc\*";DestDir:"{app}\tomcat6.0\webapps\ROOT";Flags:igNoreversion recursesubdirs createallsubdirs
     36 ;拷贝sdk
     37 Source:"Source\Sdk\*";DestDir:"{app}\Sdk";Flags:igNoreversion recursesubdirs createallsubdirs
     38 ;拷贝服务器
     39 Source:"Source\Server\*";DestDir:"{app}\Server";Flags:igNoreversion recursesubdirs createallsubdirs
     40 ;拷贝ftp
     41 Source:"Source\FtpServer\*";DestDir:"{app}\FtpServer";Flags:igNoreversion recursesubdirs createallsubdirs
     42 ;拷贝bat
     43 Source:"Source\*";DestDir:"{app}\";
     44 ;拷贝桌面快捷方式
     45 Source:"Source\xx系统.url";DestDir:"{userdesktop}\xx系统";
     46 [Languages]
     47 Name: "chinesesimp"; MessagesFile: "compiler:Default.isl"
     48 [Icons]
     49 Name: "{group}\{cm:ProgramOnTheWeb,{#MyAppName}}"; Filename: "{#MyAppURL}"
     50 Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
     51 [INI]
     52 ;修改数据库配置文件
     53 Filename:"{app}\MySql5.5\my.ini";Section:"mysqld";Key:"basedir"; String:"{app}\MySql5.5"
     54 Filename:"{app}\MySql5.5\my.ini";Section:"mysqld";Key:"datadir"; String:"{app}\MySql5.5\data"
     55 Filename:"{app}\MySql5.5\my.ini";Section:"mysqld";Key:"port"; String:"3308"
     56 Filename:"{app}\MySql5.5\my.ini";Section:"client";Key:"port"; String:"3308"
     57 ;修改服务器配置文件
     58 Filename:"{app}\Server\init.ini";Section:"RegAddr";Key:"port"; String:"5556"
     59 Filename:"{userdesktop}\xx系统.url";Section:"InternetShortcut";Key:"URL"; String:"http://127.0.0.1:7070/"
     60 [Run]
     61 ;修改tomcat配置文件
     62 Filename:"{app}\loading.bat";AfterInstall:ConfigXml(ExpandConstant('{app}\tomcat6.0\conf\server.xml'),'/Server/Service/Connector','port','7070')
     63 ;修改web数据库连接配置文件
     64 Filename:"{app}\loading.bat";AfterInstall:ConfigXml(ExpandConstant('{app}\tomcat6.0\webapps\ROOT\META-INF\Context.xml'),'/Context/Resource','password','123456')
     65 Filename:"{app}\loading.bat";AfterInstall:ConfigXml(ExpandConstant('{app}\tomcat6.0\webapps\ROOT\META-INF\Context.xml'),'/Context/Resource','url','jdbc:mysql://127.0.0.1:3308/abc?characterEncoding=UTF-8')
     66 ;修改FTP配置文件
     67 Filename:"{app}\loading.bat";AfterInstall:ConfigXml(ExpandConstant('{app}\FtpServer\FileZilla Server.xml'),'/FileZillaServer/Users/User','Name','admin')
     68 Filename:"{app}\loading.bat";AfterInstall:ConfigXml2(ExpandConstant('{app}\FtpServer\FileZilla Server.xml'),'/FileZillaServer/Users/User/Option[0]','e10adc3949ba59abbe56e057f20f883e')
     69 Filename:"{app}\loading.bat";AfterInstall:ConfigXml(ExpandConstant('{app}\FtpServer\FileZilla Server.xml'),'/FileZillaServer/Users/User/Permissions/Permission','Dir',ExpandConstant('{app}\tomcat6.0\webapps\ROOT\SystemFile'))
     70 ;修改服务配置文件
     71 Filename:"{app}\loading.bat";AfterInstall:ConfigXml(ExpandConstant('{app}\Sdk\abc.config'),'/configuration/appSettings/add[1]','value','127.0.0.1')
     72 Filename:"{app}\loading.bat";AfterInstall:ConfigXml(ExpandConstant('{app}\Sdk\abc.config'),'/configuration/appSettings/add[2]','value','5556')
     73 Filename:"{app}\loading.bat";AfterInstall:ConfigXml(ExpandConstant('{app}\Sdk\abc.config'),'/configuration/appSettings/add[3]','value','127.0.0.1')
     74 Filename:"{app}\loading.bat";AfterInstall:ConfigXml(ExpandConstant('{app}\Sdk\abc.config'),'/configuration/appSettings/add[4]','value','7070')
     75 Filename:"{app}\install.bat";Description:"正在启动或配置相关程序";
     76 [UninstallRun]
     77 Filename:"{app}\uninstall.bat";
     78 [UninstallDelete]
     79 Type:filesandordirs;Name:"{app}\Server"
     80 Type:filesandordirs;Name:"{app}\MySql5.5"
     81 Type:filesandordirs;Name:"{app}\Sdk"
     82 Type:filesandordirs;Name:"{app}\tomcat6.0"
     83 Type:files;Name:"{app}\InstallUtil.InstallLog"
     84 [Code]
     85 procedure ConfigXml2(xmlPath:String;xPath:String;innerText:String);
     86 var
     87     XMLDocument,XMLRoot,XMLNode:Variant;
     88 begin
     89     try
     90     XMLDocument := CreateOleObject('MSXML2.DOMDocument');
     91     XMLDocument.async := False;
     92     XMLDocument.resolveExternals := False;
     93     XMLDocument.load(xmlPath);
     94     XMLRoot := XMLDocument.documentElement;
     95
     96     XMLNode:=XMLRoot.SelectSingleNode(xPath);
     97     XMLNode.Text:=innerText;
     98     XMLDocument.Save(xmlPath);
     99     except
    100     MsgBox('xml error', mbInformation, mb_Ok);
    101     end;
    102 end;
    103 procedure ConfigXml(xmlPath:String;xPath:String;attrName:String;attrValue:String);
    104 var
    105     XMLDocument,XMLRoot,XMLNode:Variant;
    106 begin
    107     try
    108     XMLDocument := CreateOleObject('MSXML2.DOMDocument');
    109     XMLDocument.async := False;
    110     XMLDocument.resolveExternals := False;
    111     XMLDocument.load(xmlPath);
    112     XMLRoot := XMLDocument.documentElement;
    113
    114     XMLNode:=XMLRoot.SelectSingleNode(xPath);
    115     XMLNode.Attributes.GetNamedItem(attrName).Value:=attrValue;
    116     XMLDocument.Save(xmlPath);
    117     except
    118     MsgBox('xml error', mbInformation, mb_Ok);
    119     end;
    120 end;                                                                                       

  • 打包脚本调用的bat安装脚本

    @echo off
    title 运维系统正在安装中,请不要手动关闭
    color 0a
    echo jdk 环境变量
    reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v JAVA_HOME /t REG_EXPAND_SZ /d "%cd%\jdk1.6" /f
    echo tomcat 环境变量
    reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v CATALINA_HOME /t REG_EXPAND_SZ /d "%cd%\tomcat6.0" /f
    echo 系统环境变量
    reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v "PATH" /d "%PATH%;%cd%\jdk1.6\bin;%cd%\tomcat6.0\bin;" /f
    echo 启动mysql并更新密码
    "%cd%\MySql5.5\bin\mysqld.exe" --install "abcMysql" --defaults-file="%cd%\MySql5.5\my.ini"
    net start abcMysql
    sc config abcMysql start=auto
    ping -n 30 127.1>nul
    "%cd%\MySql5.5\bin\mysql.exe" --defaults-file="%cd%\MySql5.5\my.ini" -u root -e "UPDATE mysql.user SET Password=old_password('123456') WHERE User='root' or User='';"
    "%cd%\MySql5.5\bin\mysql.exe" --defaults-file="%cd%\MySql5.5\my.ini" -u root -e "FLUSH PRIVILEGES;"
    echo 初始化mysql数据库
    "%cd%\MySql5.5\bin\mysql.exe"  -uroot -p123456 < "%cd%\tomcat6.0\webapps\ROOT\abc.sql"
    net stop abcMysql
    net start abcMysql
    echo 安装ftp
    "%cd%\FtpServer\FileZilla server.exe" /install auto
    "%cd%\FtpServer\FileZilla server.exe" /start
    echo 安装服务器
    sc create abcMessageService binpath= "%cd%\Server\Server.exe" displayname= "abcMessageService" start= auto
    Net Start abcMessageService
    echo 启动tomcat
    set JAVA_HOME=%cd%\jdk1.6
    set CATALINA_HOME=%cd%\tomcat6.0
    set CATALINA_BASE=%cd%\tomcat6.0
    cd .\tomcat6.0\bin
    call service.bat install
    sc config abcTomcat6 start=auto
    net start abcTomcat6
    cd ..\..\
    echo 安装服务
    %SystemRoot%\Microsoft.NET\Framework\v2.0.50727\installutil.exe "%cd%\Sdk\abc.exe"
    Net Start abcService
    sc config abcService start=auto
    exit

  • 打包脚本调用的bat卸载脚本

    @echo off
    title abc系统正在卸载中,请不要手动关闭
    color 0a
    echo 删除环境变量
    reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v JAVA_HOME  /f
    reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v CATALINA_HOME  /f
    echo 停止并删除tomcat
    net stop abcTomcat6
    cd .\tomcat6.0\bin
    call service.bat remove
    cd ..\..\
    echo 停止并删除mysql
    net stop abcMysql
    sc delete abcMysql
    echo 停止并卸载FTP
    "%cd%\FtpServer\FileZilla server.exe" /stop
    "%cd%\FtpServer\FileZilla server.exe" /uninstall
    echo 卸载注册服务器
    Net Stop abcMessageService
    sc delete abcMessageService
    echo 卸载运维服务
    Net Stop abcService
    %SystemRoot%\Microsoft.NET\Framework\v2.0.50727\installutil.exe -u "%cd%\Sdk\abc.exe"
    sc delete abcService
    exit

  • 打包脚本调用的bat等待脚本
    @echo off
    echo pause;
  • 其他相关
    1.建议把要打包的内容都放在同一个目录下面
    2.自己新建一个ie网站快捷方式,用记事本打开以后修改成自己app的连接地址
    3.这个ftp是使用的FileZilla,配置文件中的密码是标准md5加密
    4.代码里面的东西可以根据个人项目的实际情况做适当的调整。
  • 居然第一篇文章是写的打包相关,我也是醉了,只是希望能够帮助到一些需要的人,高手请飘过~

http://www.cnblogs.com/dehai168/p/4512484.html

时间: 2015-08-18

使用Inno Setup 打包jdk、mysql、tomcat、webapp等为一个exe安装包(转)的相关文章

Inno Setup打包添加和去除管理员权限

原文:Inno Setup打包添加和去除管理员权限 添加管理员权限 1.在[Setup]节点添加 PrivilegesRequired=admin 2.进入安装目录,找到文件SetupLdr.e32,这是一个二进制配置文件,需要用到ResHacker.exe这个工具修改  找到<requestedExecutionLevel level="asInvoker" uiAccess="false"/></requestedPrivileges>,

利用Advanced Installer将asp.netMVC连同IIS服务和mysql数据库一块打包成exe安装包

原文:利用Advanced Installer将asp.netMVC连同IIS服务和mysql数据库一块打包成exe安装包 因为业务需要,项目中需要把asp.netmvc项目打包成exe安装程序给客户,让客户直接可以点下一步下一步安装部署web程序,并且同时要将IIS服务和mysql一同安装到服务器上,因为客户的电脑可能是64位也可能是32位,所以在打包的时候就需要打包成两份安装包.研究了几天终于有所收获,下边就是打包的步骤. 打包步骤: 一.前期准备 1.将asp.netmvc发布到本地目录中

请问怎么将web工程打包成像通达OA这种可以直接安装的安装包,即exe文件

问题描述 请问怎么将web工程打包成像通达OA这种可以直接安装的安装包,即exe文件 请问怎么将web工程打包成像通达OA这种可以直接安装的安装包,即exe文件

inno setup 打包 图标修改

问题描述 如上图选择默认程序,上面的PDFViewer图标如何修改? 解决方案

InstallShield2010如何把.net 4.0环境打包成一个EXE文件进行选择安装?

问题描述 各位大侠我用InstallShield2010打包的.net4.0环境都是预安装,我想把.net4.0环境打包成一个EXE文件进行安装,不带文件夹的那种?求大侠们教我! 解决方案 解决方案二:使用InstallShieldPackageForTheWeb可以方便地将安装程序打包成单一exe的形式.解决方案三:好的我试试看看!解决方案四:你把.netframework4.0打到包,然后在输出的时候,输出为一个一个压缩可执行文件就可以.注意.netframework4.0需要选择32位和6

inno setup介绍(转)

使 用 笔 记 1.Inno Setup 是什么?Inno Setup 是一个免费的 Windows 安装程序制作软件.第一次发表是在 1997 年,Inno Setup 今天在功能设置和稳定性上的竞争力可能已经超过一些商业的安装程序制作软件.关键功能: 支持现在所有正在使用的 32 位 Windows 版本: Windows 95,98,2000,Server 2003,XP,Me,NT 4.0 (不需要服务包). 支持创建单个 EXE 格式的安装程序,使你的程序可以很方便地在网络上发表.同时

CentOS 下yum安装mysql、jdk和tomcat的方法_Linux

0. 创建个人文件夹 # 使用 yum 安装tomcat 和 mysql # 创建文件夹 cd /usr/local mkdir hehe 1. 安装rzsz # 1. 安装rzsz yum list lrzsz* yum install lrzsz -y 2. 安装JDK,path之类的已经自动设置好了 # 2. 安装JDK yum list java* yum install java-1.7.0-openjdk* -y 3. 安装mysql # 3. 安装mysql yum list my

用inno Setup制作web项目安装包

原文:用inno Setup制作web项目安装包 用inno Setup制作安装包 新建一个文件夹exambody,放apache-tomcat-6.0.33.mysql-5.1.37-win32.java(注:jdk)和图标exambody.ico   1.       批处理安装mysql服务: 在mysql-5.1.37-win32\bin 的目录下: 新建一个文件:启动服务.bat 里面写: cd /d %~dp0                                     

WIN2000+PHP+MYSQL+TOMCAT+JSP完全整合安装手册

一.前期准备情况 1.一个安装好的WIN2000服务器,注意:如果预装了IIS,请先将IIS服务停掉或禁用. 2.下栽软件 APACHE:版本:1.3.22 --apache_1.3.22-win32-x86.msi JDK:版本: 1.3 --j2sdk1_3_0-win.exe PHP: 版本: 4.0.4 --php4.0.4pl1-win32.zip MYSQL: 版本:3.23.32 --mysql-3.23.32-win.zip TOMCAT:版本: 4.0.4 --jakarta-