2015-10-15 3 views
-1

У меня есть программа в java, которая копирует некоторые файлы в домашние java-папки. В cmd это работа. Я не знаю, как это использовать в Inno Setup.Запустить файл java в inno setup

Я пробовал:

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" 
+0

Вы хотите запустить Java-код для копирования файлов? Почему бы вам не скопировать их с помощью Inno Setup? Или вы хотите скопировать JAR-файл и JRE? Пожалуйста, укажите свой вопрос. – Wosi

+0

Флаг в последней строке - это то же самое, что и другие строки. – rogal666

+0

Потому что я хочу найти локальный склад. с "java.lang.System.getProperty (" java.home ")". Например, у кого-то есть jre8, другой человек jre7. и т.п. – rogal666

ответ

2

Я нашел другой путь. Может, кому-то это поможет. Это не мой код.

[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