简体   繁体   English

在Inno Setup中运行Java文件

[英]Run java file in inno setup

I have program in java who are copying some files to home java folders. 我有Java程序,正在将某些文件复制到家庭Java文件夹。 In cmd it's work. 在cmd中可以正常工作。 I don't know how use it in Inno Setup. 我不知道如何在Inno Setup中使用它。

I tried: 我试过了:

Filename: "{cmd}"; Parameters: "/C ""cd {app}""/C ""java Javaxcomm"; Flags: runhidden waituntilterminated runascurrentuser
Filename: "java"; Parameters: "Javaxcomm"; WorkingDir: "{app}";  Flags: runhidden waituntilterminated runascurrentuser
Filename: "cmd"; Parameters: "/C java {app}\Javaxcomm"

I found another way. 我找到了另一种方式。 Maybe someone this will help. 也许有人会有所帮助。 It isn't my code. 这不是我的代码。

[Code]
var
  javaVersion: String;
  javaPath: String;

function InitializeSetup(): Boolean;
begin
  if RegValueExists(HKLM, 'SOFTWARE\JavaSoft\Java Development Kit', 'CurrentVersion') then
    begin
      RegQueryStringValue(HKLM, 'SOFTWARE\JavaSoft\Java Development Kit', 'CurrentVersion', javaVersion);
      MsgBox('Found Java Development Kit version ' + javaVersion, mbInformation, MB_OK);
      if RegValueExists(HKLM, 'SOFTWARE\JavaSoft\Java Development Kit\' + javaVersion, 'JavaHome') then
        begin
          RegQueryStringValue(HKLM, 'SOFTWARE\JavaSoft\Java Development Kit\' + javaVersion, 'JavaHome', javaPath);
          MsgBox('Found Java Development Kit java_home: ' + javaPath, mbInformation, MB_OK);
          Result := True;
        end
      else
        begin
          MsgBox('Java Path not set for JDK' + javaVersion, mbInformation, MB_OK);
          MsgBox('RE-install java', mbInformation, MB_OK);
          Result := False;
        end
    end
  else if RegValueExists(HKLM, 'SOFTWARE\JavaSoft\Java Runtime Environment', 'CurrentVersion') then
    begin
      RegQueryStringValue(HKLM, 'SOFTWARE\JavaSoft\Java Runtime Environment', 'CurrentVersion', javaVersion);
      MsgBox('Found Java Runtime Environment version ' + javaVersion, mbInformation, MB_OK);
      if RegValueExists(HKLM, 'SOFTWARE\JavaSoft\Java Runtime Environment\' + javaVersion, 'JavaHome') then
        begin
          RegQueryStringValue(HKLM, 'SOFTWARE\JavaSoft\Java Runtime Environment\' + javaVersion, 'JavaHome', javaPath);
          MsgBox('Found Runtime Environment java_home: ' + javaPath, mbInformation, MB_OK);
          Result := True;
        end
      else
        begin
          MsgBox('Java Path not set for Java Runtime Environment' + javaVersion, mbInformation, MB_OK);
          MsgBox('RE-install java', mbInformation, MB_OK);
          Result := False;
        end
    end
  else
    begin
      MsgBox('v1 has not been found on your computer.'#13#13'Please Install it and try again.', MbError, Mb_Ok);
      Result := False;
    end
end;

function GetJAVAHome(S: String) : String;
begin
  Result := javaPath;
end;
Source: "{#MojaAppZrodla}\commapi\comm.jar"; DestDir: "{code:GetJAVAHome}\lib\ext"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "{#MojaAppZrodla}\commapi\win32com.dll"; DestDir: "{code:GetJAVAHome}\bin"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "{#MojaAppZrodla}\commapi\javax.comm.properties"; DestDir: "{code:GetJAVAHome}\lib"; Flags: ignoreversion recursesubdirs createallsubdirs

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM