Steam 不接受启动安装(使用安装程序)特定 JRE 然后在其上启动我的应用程序的批处理文件。所以,为了避免这个问题,我想创建一个“自包含的应用程序打包”并向 Steam 提供一个“简单”的 .exe,这个文件包括 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) 中,我有可以从 JRE 启动的应用程序 (hg.jar)。
注意:以下是安装 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