Как связать JRE с Launch4j?


У меня есть Launch4J на моем компьютере, и это отличная программа. Одна из его особенностей, которая меня интересует, - это возможность связывать JRE в общем .файл EXE. Однако я не могу найти никакой документации, которая описывает, как это сделать.

Как мне связать JRE с EXE? Кроме того, где я могу получить компактный, портативный JRE для запуска? Ссылки для загрузки в Oracle предназначены для пакетов установщика.

5 56

5 ответов:

после некоторых попыток я, наконец, получаю обходной путь для связывания jre в моем приложении:

я упаковываю свое приложение в виде zip-файла со следующими папками внутри:

containerFolder
|- jre
      |-bin (in bin there is java.exe)
      |-lib
|- cfg (to save the user configuration, but it's not needed)
|- bin (my application with the .exe and the .jar and all the other stuff)

в xml-файле launch4j я настраиваю jre следующим образом:

<jre>
    <path>../jre</path>
    <opt>-DgvSIG.confDir=../cfg</opt>
</jre>

хитрость здесь заключается в том, что путь не к java.файл EXE. Путь к jre находится относительно положения .exe и он должен указывать на одну папку перед Java.exe файл

jre папка, которую я использую, - это просто копия и вставка из папки jre, установленной в системе windows.

единственный способ, которым я мог связать JRE, состоял в использовании компилятора Launch4J и Inno Setup.

во-первых, создать папку jre6 (например) в том же каталоге, что выходной файл (.исполняемый.)

затем скопируйте JRE из вашей системы в папку jre6.

затем вы открываете Launch4J и устанавливаете "связанный путь JRE" - просто введите: jre6 . Затем нажмите кнопку построить (очевидно, после того, как вы ввели все остальные параметры - но единственное значение, которое вам нужно ввести на вкладке среда JRE 'сама по себе 'в комплекте стоимость JRE и путь'.)

Я бы ожидал, что это сработает, но если переместить .exe в новое расположение (так что он больше не находится вместе с вашей папкой jre6) вы получаете сообщение об ошибке "это приложение было настроено для использования среды выполнения Java в комплекте, но среда выполнения отсутствует или повреждена" при попытке запустить приложение...

Я играл с этим весь день, и я не мог заставить Launch4J включить JRE этот.файл EXE. Очень плохо, на мой взгляд, так как их документация, похоже, вообще не ссылается на эту проблему.

Итак, что я сделал, чтобы решить-использовать Инно компилятора установки. Это приложение используется, чтобы обернуть ваш .exe как файл установщика Windows. Поэтому я добавил параметр в сценарий ISC, который копирует JRE в пакет установщика. Строка, которую я добавил в скрипт (в разделе [Файлы]), была:

Source: "M:\Netbeans\MyApp\jre6\*"; DestDir: "{app}\jre6\"; Flags: recursesubdirs createallsubdirs

...немного обходной путь, но он сделал свое дело.

повторить все вышеупомянутые шаги, и вы должны быть отсортированы.

ОТВЕТ ВЗЯТ ИЗ здесь..user1617737

та же проблема, как вы мат. Теперь не беспокойся. Его все решают с максимальной глубиной, чтобы решить будущее решение. Решение, как вы можете связать ваш JRE для телефона jar без необходимости, что пользователь должен установить Java или нет. Ваше приложение java будет работать.

  1. скопировать lib и

Я сделал следующее, И это сработало для меня с помощью ver Launch4j 3.11:

  1. создал новую папку для моего приложения (например, MyApp).
  2. скопировал файл jar из папки Java project dist в MyApp вместе с папкой lib.
  3. создал папку с именем jre в папке my application MyApp Итак, теперь папка MyApp содержит:
    • приложение.банку
    • lib
    • jre
  4. скопировал папки bin и lib из папки java jre (C:\Program Файлы (x86)\Java\jre7) в MyApp\jre
  5. в Launch4j установив все необходимые параметры, затем установите В комплекте JRE путь к "jre"

    Launch4j JRE options

  6. убедитесь, что в параметрах поиска " использовать только частные среды выполнения JDK" выбирается.

jre обычно можно найти в папке SDK. Да, ссылки в интернете являются установщиками, но после установки JRE теперь находится на вашем локальном диске. Шахта находится в

${jdk folder}\jre

части, которые вам не нужны из JRE, вероятно, могут быть удалены вручную, если вы действительно хотите (я не уверен, что доступно в интернете).