8

JavaFXアプリケーションを作成し、Antを使用してそのネイティブバンドルを作成しました。ダブルクリックで作成したバンドルからJarを使用してアプリケーションを起動しようとすると、アプリケーションが正常に起動します。しかし、MyApplication.exe(たとえば)をダブルクリックしようとすると、JavaFXランチャーエラー「アプリケーションの実行中に例外が発生しました」がスローされます。

私は両方の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>

アプリケーションがexeで正しく起動するためにbuild.xmlにさらに何が必要ですか?

ありがとう

4

1 に答える 1

2

JavaFx exeを起動しない問題は、 exeを作成する際のビルド手順で「C:\ ProgramFiles \ Java \ jdk_version\jre」から\bundles\ MyApplication \ runtime\jreにjreをコピーすることで解決しました。

<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 に答える