2016-11-16 6 views
1

среды Обновление:Добавление в программу установки форму, чтобы выбрать путь, на котором установлен JDK, то изменение переменной

мне удалось сделать мой инсталлятор работу должным образом. (добавлены примечания к выпуску, раздел лицензионного соглашения, выбирая место, где должна быть установлена ​​программа, сгенерировав мне сокращенное сокращение и т. д.), что я хочу добавить, что во время установки я хочу, чтобы пользователь выбирал путь туда, где он установил свой JDK. Я хочу использовать этот путь, создать переменную системной среды с именем JAVA_HOME и иметь значение этого выбранного пути. Как мне это сделать? Мне очень приятно показывать мой код, потому что я нахожусь на своем телефоне. Но если я должен буду приложить все усилия, чтобы это сделать.

+0

Отредактировано, посмотрите –

ответ

1

основе

[Setup] 
ChangesEnvironment=yes 

[Registry] 
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; \ 
    ValueType: string; ValueName: "JAVA_HOME"; ValueData:"{code:GetJavaHome}"; \ 
    Flags: preservestringtype 

[Code] 

var 
    JavaHomePage: TInputDirWizardPage; 

procedure InitializeWizard(); 
begin 
    JavaHomePage := 
    CreateInputDirPage(
     wpSelectDir, 'Java Path', 'Where do you have Java installed to?', '', False, ''); 
    JavaHomePage.Add(''); 
end; 

function GetJavaHome(Param: string): string; 
begin 
    Result := JavaHomePage.Values[0]; 
end; 

Если вы хотите предложить некоторые значимые по умолчанию, см также ответ на @Matthieu to Inno Setup - Setting Java Environment Variable.

+0

Один вопрос: почему «JAVA_HOME2» ?? Могу ли я просто сделать «JAVA_HOME», и этот выбранный путь изменит существующий «JAVA_HOME»? –

+0

В моем ответе нет JAVA_HOME2 (это было на секунду, прежде чем я исправил его, но это уже давно). –

+0

Im получает сообщение об ошибке: строка34: обязательный параметр "subkey" не указан. –