8

我创建了一个 JavaFX 应用程序,并使用Ant创建了它的本机包。当我尝试使用双击创建的包中的 Jar 启动应用程序时,它成功启动了我的应用程序。但是当我尝试双击 MyApplication.exe (比如说)时,它会抛出JavaFX Launcher Error "Exception while running Application"

我比较了这两个 jre,发现有很多缺少的 jar、exe、dll 和一些属性文件。

我有这些环境设置 -

JAVA_HOME -- C:\Program Files\Java\jdk1.7.0_10
JREFX_HOME -- C:\Program Files\Oracle\JavaFX 2.2 Runtime
Path contains an entry of C:\Program Files\Java\jdk1.7.0_10\bin

JAVA_HOME 和 JREFX_HOME 在我的 build.xml 中用于获取 ant-javafx.jar 和 jfxrt.jar --

${env.JAVA_HOME}/lib/ant-javafx.jar
${env.JREFX_HOME}/lib/jfxrt.jar

我创建捆绑包的步骤是 -

<target name="CreatingExe" depends="SignedJar">
            <fx:deploy width="800" height="600" nativeBundles="all" outdir="${OutputPath}" outfile="${app.name}">
                <fx:info title="${app.title}"/>
                    <fx:application name="${app.title}" mainClass="${main.class}"/>
                    <fx:resources>
                        <fx:fileset dir="${OutputPath}" includes="*.jar"/>
                <fx:fileset dir="${WorkingFolder}/temp"/>
            </fx:resources>
         </fx:deploy>
 </target>

build.xml 中还需要什么才能使用 exe 正确启动应用程序?

谢谢

4

1 回答 1

2

通过在创建 exe 时将 jre 从“C:\Program Files\Java\jdk_version\jre”复制\bundles\MyApplication\runtime\jre来解决不启动 JavaFx exe 的问题 -

<target name="CopyJre" depends="CreatingExe"> 
 <delete dir="${app_path}/bundles/MyApplication/runtime/jre"/>
 <mkdir dir="${app_path}/bundles/MyApplication/runtime/jre"/>
 <copy todir=${app_path}/bundles/MyApplication/runtime/jre">
   <fileset dir="${env.JAVA_HOME}/jre" />
 </copy>
</target>

JAVA_HOME = C:\Program Files\Java\jdk_version

谢谢

于 2013-12-04T04:48:04.387 回答