Как найти приложение (Java) в PATH в Inno Setup

Я бы пошел, и захватил эту небольшую утилиту , и в ней вы найдете функции для этого. Вот краткий пример:

        
        

1
задан Martin Prikryl 13 July 2018 в 11:25
поделиться

1 ответ

Самый простой (и даже правильный) способ - найти путь, где java.exe.

Вы можете использовать функцию FileSearch , например:

var
  Path: string;
begin
  Path := FileSearch('java.exe', GetEnv('PATH'));
  if Path = '' then
  begin
    Log('Java not found in PATH');
  end
    else
  begin
    Path := ExtractFileDir(Path);
    Log(Format('Java is in "%s"', [Path]));
  end;
end;

Если вы все еще хотите найти путь, содержащий JRE, вы можете использовать такой код:

var
  Path: string;
  JavaPath: string;
  S: string;
  P: Integer;
begin
  Path := GetEnv('PATH');
  while (Path <> '') and (JavaPath = '') do
  begin
    P := Pos(';', Path);
    if P = 0 then
    begin
      S := Trim(Path);
      Path := '';
    end
      else
    begin
      S := Trim(Copy(Path, 1, P - 1));
      Path := Trim(Copy(Path, P + 1, Length(Path) - P)); 
    end;

    if Pos('JDK', Uppercase(S)) > 0 then
    begin
      JavaPath := S;
    end;
  end;

  if JavaPath = '' then
  begin
    Log('Java not found in PATH');
  end
    else
  begin
    Log(Format('Java is in "%s"', [JavaPath]));
  end;
end;
1
ответ дан Martin Prikryl 17 August 2018 в 13:14
поделиться
  • 1
    Спасибо за быструю помощь @ Мартин Прикрилл !!. Сначала он обнаружил путь Oracle Java и C: \ Program Files (x86) \ Common Files \ Oracle \ Java \ javapath & quot; то я переместил свой фактический путь Java до пути Oracle Java, затем он сработал. поэтому да, есть условие, вы должны установить java-путь в начале всех путей. – skr 13 July 2018 в 11:32
  • 2
    И проблема в том, что он обнаружил C:\Program Files (x86)\Common Files\Oracle\Java\javapath? Это также путь Java, не так ли? – Martin Prikryl 13 July 2018 в 11:36
  • 3
    проверяя местоположение «C: \ Program Files (x86) \ Common Files \ Oracle \ Java», я нашел только три файла java.exe, javaw.exe, javaws.exe. Если я установил этот путь java для моей установки tomcat, это сработает? Ему нужен файл JVM.dll, поэтому не думайте, что он будет работать. В любом случае, спасибо за быстрое решение. – skr 13 July 2018 в 11:45
  • 4
    У меня недостаточно опыта работы с Java, чтобы ответить на это. Хотя вы можете искать server\JVM.dll вместо java.exe, если вы считаете, что вам нужно JVM.dll. – Martin Prikryl 13 July 2018 в 11:48
  • 5
    ваше решение по крайней мере дает мне представление о том, как это можно сделать при настройке Pascal / Inno. Это может быть улучшено, и я буду работать над этим и изменить его в соответствии с моими требованиями. Итак, благодарю вас за такое быстрое решение, я очень ценю вашу помощь. – skr 13 July 2018 в 11:53
Другие вопросы по тегам:

Похожие вопросы: