如何使用安装程序在简单的.exe文件中安装多个安装?

时间:2011-11-17 05:27:23

标签: java mysql deployment installer inno-setup

我正在开发Java富客户端应用程序。使用MySQL服务器,我将其作为.jar文件。 我希望用户有一个简单的.exe文件,在运行它时,安装JRE和MySQL服务器,然后他将有一个jar文件的快捷方式,只需处理它。

我尝试使用的不仅仅是安装程序:inno setup,高级安装程序,Excelsior Installer,... 但是他们都给了我相同的结果:在安装产品后,只需将JRE和MySQL服务器的所有.exe文件放在目标文件夹中(即只需解压缩文件而不安装它们)。

有人能帮助我吗?

2 个答案:

答案 0 :(得分:3)

通过InnoSetup创建安装文件时,您可以在InnoSetup脚本文件中的[Run]下运行任意数量的可执行文件(Windows安装程序安装程序是可执行文件)。但是,您应使用Check:检查是否已安装每个安装程序。

使用目标系统上的注册表检查安装Java Advanced Imaging(JAI)运行时和Visual C ++ 2010 Redistributable Package(x86)的示例:

[Files]
Source: "install\README.txt"; DestDir: "{app}" Flags: ignoreversion
Source: "install\vcredist_x86.exe"; DestDir: "{app}" Flags: ignoreversion recursesubdirs createsubdirs
Source: "install\jai-1_1_3-lib-windows-i586-jre.exe"; DestDir: "{app}" Flags: ignoreversion recursesubdirs createsubdirs

[Icons]
Name: "{group}\{cm:UninstallProgram, {#MyTitleName}}"; Filename: "{uninstallexe}"; Comment: "Uninstalls {#MyTitleName}"

[Run]
Filename: "{app}\vcredist_x86.exe"; StatusMsg: {cm:RunVCRedist2010x86}; Flags: runhidden shellexec waituntilterminated; Check: IsNotVCRedist2010x86Installed
Filename: "{app}\jai-1_1_3-lib-windows-i586-jre.exe"; StatusMsg: {cm:RunJAIByDefault}; Flags: runhidden shellexec waituntilterminated; Check: IsNotJAIInstalled

[Code]
function IsNotJAIInstalled: Boolean;
begin
  Result := not RegKeyExists(HKLM, 'SOFTWARE\SUNW\Java Advanced Imaging');
end;

function IsNotVCRedist2010x86Installed: Boolean;
var
  Installed: Cardinal;
begin
  Result := RegQueryDWordValue(HKLM, 'SOFTWARE\Microsoft\VisualStudio\10.0\VC\VCRedist\x86',
    'Installed', Installed) and (Installed <> 1);
end;

注意: 如果[Files]中的安装程序位于InnoSetup项目的“install”文件夹中,则会在Innosetup过程中压缩它们以生成InnoSetup安装程序可执行文件。当您运行创建的设置时,它将解压缩您定义的{app}文件夹中的安装程序,它将执行[Run]下定义的任何内容

答案 1 :(得分:0)

Java Web StartdeployJava.js是此部署的明显选择。

  1. 使用deployJava.js确保用户拥有正确的最低版本的JRE来运行该应用。
  2. 使用ExtensionInstallerService
  3. 调用MySQL安装程序
  4. (如有必要)使用PersistenceService存储任何特定于安装的数据(例如,用户选择安装数据库的路径)。
  5. 在启动文件中指定桌面快捷方式和菜单项。
  6. 请注意,如果您可以在Mac上为MySQL提供安装程序。和* nix,JWS可以通过操作系统对下载进行分区。