Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Failed to launch JavaFX application with native bundle exe

I have created a JavaFX application, and created its native bundle using Ant. When I am trying to launch application using Jar from bundle created with double click, it successfully launching my application. But when I am trying double click on MyApplication.exe (say), it throwing JavaFX Launcher Error "Exception while running Application".

I have compared both jre, there are many missing jar, exe, dll and some properties files I found.

I have these environment settings -

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 and JREFX_HOME are used as in my build.xml to take ant-javafx.jar and jfxrt.jar --

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

My steps to create bundle are -

<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>

What more needed in build.xml so that application launch correctly with exe ?

Thanks

like image 765
Neelam Sharma Avatar asked Jan 10 '13 07:01

Neelam Sharma


1 Answers

The problem of not launching JavaFx exe resolved by copying jre from "C:\Program Files\Java\jdk_version\jre" to \bundles\MyApplication\runtime\jre in build steps upon creating exe as -

<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

Thanks

like image 175
Neelam Sharma Avatar answered Oct 19 '22 19:10

Neelam Sharma