Проблема в комплектации JRE в JSmooth в Java - PullRequest
2 голосов
/ 23 марта 2011

Друзья, я использую установщик JSMOOTH для создания файла .exe и связал с ним мой путь JRE по умолчанию ..

Если у пользователя нет виртуальной машины Java в его системе, он должен использовать пакетную JRE в моем .exe-файле.

Но его перенаправление на страницу загрузки я попробовал со всеми вариантами скелета, но не смог использовать пакетную JRE ..

Есть 5 скелетов 1. Сервис Win 2. Обертка автоматической загрузки 3. Обертка консоли 4. Оболочка Windows 5. Пользовательский веб-загрузчик

Мой вопрос:

1. Из этих пяти опций, какую опцию я должен выбрать, чтобы, если пользователь не является JVM, он использовал мою связанную JRE.

Я получаю следующую ошибку:

  1. Если я использую 1.Auto Download обертку как мой скелет, я получаю this и enter image description here

  2. Если я использую в качестве каркаса загрузчик CustomWeb, я получаю this

3.Если я использую оконную оболочку в качестве скелета, я получаю this

  1. Если я использую оболочку консоли в качестве скелета, я получаю this

Что я хочу, так это то, что если в пользовательской системе нет JVM, он должен использовать пакетную JRE, а не запрашивать загрузку JAVA.

Я сослался на это руководство и делаю это так, но все же я не могу достичь цели ..

Мои экраны JSmooth JVMScreen

ExecutableScreen

Application screen

У меня есть JAR-файл на рабочем столе внутри папки Test, а также папка JRE внутри него.

Я пытался сохранить JRE рядом с .exe и по умолчанию. Но все время он ссылается на Jre пути по умолчанию ...

Ответы [ 2 ]

0 голосов
/ 12 августа 2018

Я столкнулся с той же проблемой. Основываясь на других подсказках в эфире, я думаю проблема связана с win32 / win64, в частности опция bundle будет работать только с win32 jre. Я переключился на Win32 JRE и получил дальше, но запуск все еще не удался, потому что некоторые из необходимых .dll не были установлены. Похоже, вариант комплектации не может быть надежным без JRE не требует установки.

Тогда я нашел https://portableapps.com/apps/utilities/java_portable и мне это удалось Это Java 1.8.0_181, который немного старый, но соответствующий моим потребностям.

0 голосов
/ 12 ноября 2011

Я не знаком с JSmooth Java Launcher Creator.Но, на основе создателя запуска Launch4J Java, вы должны включить вашу целевую папку JRE (все папки и подпапки целевого JRE в целости) как часть вашего пакета запуска приложений.Launch4J должен быть запущен из базовой папки, где он может найти папку JRE.Например, если у вас есть путь запуска проекта, например «C: \ MYProject \ install», где вы компилируете все файлы зависимостей пути к классам, чтобы запустить EXE-файл запуска с «C: \ MyProject \ install \ jre1.6.0_26», это цельПапка JRE внутри.Ваша запись пакета JVM должна быть "jre1.6.0_26".Файл запуска Launch4J EXE должен быть в состоянии найти относительную папку "jre1.6.0_26" из базы "C: \ MYProject \ install"

Когда перевести это на то, что будет делать файл запуска EXE при попыткевыполнить:

C:\C:\MYProject\install
 |__MyApp.EXE (your resulting output launcher file)
 |__all classpath dependency jars needed by MyApp.EXE
 |__jre1.6.0_26 (folder of JVM bundle)

Задача Ant для сценария Launch4J:

<exec executable="C:\Program Files\Launch4j\launch4jc.exe">
    <arg value="${basedir}\myLaunch4j.xml"/>
</exec>
...