我正在为WinXP 32位系统构建一个JavaFX应用程序(本机包)。
我部署了一个WinXP 32位虚拟机。还安装了JDK(jdk-8u65-windows-i586)和InnoSetup和Netbeans 8.0.2 …
但是,当我试图打包为一个.EXE应用程序我收到:
Exception: java.io.IOException: Cannot run program "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\iconswap2855415551655584734.exe": CreateProcess error=193,%1 is not a valid Win32 application C:\Documents and Settings\Administrator\My Documents\Netbeans Projects\AffideaDicomRouterBasic1_0_0\nbproject\jfx-impl.xml:3415: The following error occurred while executing this line: C:\Documents and Settings\Administrator\My Documents\Netbeans Projects\AffideaDicomRouterBasic1_0_0\nbproject\jfx-impl.xml:3438: The following error occurred while executing this line: C:\Documents and Settings\Administrator\My Documents\Netbeans Projects\AffideaDicomRouterBasic1_0_0\nbproject\jfx-impl.xml:1465: The following error occurred while executing this line: C:\Documents and Settings\Administrator\My Documents\Netbeans Projects\AffideaDicomRouterBasic1_0_0\nbproject\jfx-impl.xml:3093: The following error occurred while executing this line: C:\Documents and Settings\Administrator\My Documents\Netbeans Projects\AffideaDicomRouterBasic1_0_0\nbproject\jfx-impl.xml:2055: Error: Bundler "EXE Installer" (exe) Failed to produce a bundle. BUILD Failed (total time: 35 seconds)
我的设置是否正常?我还缺什么吗
我以为为了为WinXP32构建一个JavaFX应用程序,我只应该:
>在类似的(WinXP32)机器上构建它
>使用X86 JDK版本
但这似乎还不够!
这个问题听起来像您正在尝试将jar存档(或所有.class文件)打包到一个exe存档中。
我的答案是基于这个假设,并尝试解释和扩展来自nextcard的答案。如果我误解了你的问题,我很抱歉对于我链接的格式不好,我很抱歉。我不允许发布多个链接。一旦我有十个声誉,我会更正。
我的答案是基于这个假设,并尝试解释和扩展来自nextcard的答案。如果我误解了你的问题,我很抱歉对于我链接的格式不好,我很抱歉。我不允许发布多个链接。一旦我有十个声誉,我会更正。
Java不是编译语言。这意味着.class文件或jar存档不可执行。每个Java程序都需要使用通常称为java的JIT(即时编译器)启动。
如果您点击它们,系统就可以执行jar存档,因为它知道它必须在文件名之前添加“java -jar”才能做某事。
如果您希望将java程序作为系统依赖可执行文件,那么您必须使用AOT(Ahead of Time)编译器。那些产生真正的字节码的系统可以解释自己在java程序正常运行的虚拟机上的独立性。另一种可能性是用launch4j(已经由nextcard提到)
包装:
> launch4j
AOT编译:
> vmkit.llvm.org> gcc.gnu.org/java/> www.excelsiorjet.com