Steam не разрешает запускать пакетный файл, который устанавливает (с помощью установщика) определенную JRE, а затем запускает мое приложение на нем.Итак, чтобы избежать этой проблемы, я хочу создать «автономную упаковку приложения» и предоставить «простой» .exe для Steam, этот файл включает JRE и мое приложение.
Я видел https://docs.oracle.com/javafx/2/deployment/self-contained-packaging.htm#A1324980 но это немного сложно.Я только заметил, что Innosetup может помочь мне создать этот файл .exe.
Но другое решение - использовать javafxpackager (из C: \ Program Files \ Java \ jdk1.8.0_xxx \ bin)
У кого-нибудь есть опыт создания исполняемого файла с помощью innosetup и javafxpackager, чтобы поделиться им с сообществом, особенно в контексте Steam?Какие ловушки следует избегать при создании выходного файла?
Спасибо
Примечание. В настоящее время innosetup и jdk1.8.0_191 (включая javapackager.exe)устанавливаются соответственно в C: \ Program Files (x86) \ Inno Setup 5 и C: \ Program Files \ Java \ jdk1.8.0_191.В специальной папке (steam_hg) у меня есть приложение (hg.jar), которое можно запустить из JRE.
Примечание. Вот пример пакетного файла, который устанавливает JRE (при необходимости), а затемзапускает приложение:
@echo off
REM The game only works on 64 bits
reg Query "HKLM\Hardware\Description\System\CentralProcessor\0" | find /i "x86" > NUL && set OS=32BIT || set OS=64BIT
echo %OS%
if %OS%==32BIT echo Windows is a 32bits operating system. Hyper Galactica only works on Windows 64 bits
if %OS%==32BIT goto fin
if %OS%==64BIT echo Hyper Galactica for Windows 64bits.
REM JRE installer, if it is necessary
if exist jre1.8.0 (echo jre already installed in the jre1.8.0 folder)
if not exist jre1.8.0 (
echo installer command for 1.8.0.191 jre
jre-8u191-windows-x64 /s INSTALLDIR=%~dp0jre1.8.0
)
REM launch the game
start %~dp0jre1.8.0\bin\java.exe -classpath %~dp0 -jar hg.jar
:fin