2013-01-10 10 views
8

Ho creato un'applicazione JavaFX e creato il suo pacchetto nativo utilizzando Ant. Quando provo a lanciare l'applicazione usando Jar dal pacchetto creato con doppio clic, avvia correttamente la mia applicazione. Ma quando sto provando a fare doppio clic su MyApplication.exe (ad esempio), lanciando l'errore di avvio di JavaFX "Eccezione durante l'esecuzione dell'applicazione".Impossibile avviare l'applicazione JavaFX con il pacchetto nativo exe

Ho confrontato entrambi jre, ci sono molti jar mancanti, exe, dll e alcuni file di proprietà che ho trovato.

ho queste impostazioni di ambiente -

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 e JREFX_HOME vengono utilizzati come nel mio build.xml di prendere ant-javafx.jar e jfxrt.jar -

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

miei passi per creare un pacchetto sono -

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

Cosa c'è di più necessario in build.xml in modo che l'applicazione venga avviata correttamente con exe ?

Grazie

+1

jdk7u10 include tutti i runtime e gli strumenti di sviluppo javafx, quindi non dovresti utilizzare o utilizzare i bit javafx al di fuori della directory jdk, ad esempio non utilizzare mai da C: \ Programmi \ Oracle \ JavaFX 2.2 Runtime'. – jewelsea

+0

@jewelsea abbiamo aggiornato il nostro percorso per prendere jfxrt.jar come - $ {env.JAVA_HOME} /jre/lib/jfxrt.jar, non è cambiato nulla !! Come posso copiare la cartella jre completa durante la creazione del pacchetto nella cartella "pacchetti \ MyApplication \ runtime \ jre". –

+0

Si dice che "Solo un sottoinsieme di Java Runtime è incluso per impostazione predefinita.Alcuni file opzionali e usati raramente sono esclusi per ridurre le dimensioni del pacchetto, come tutti gli eseguibili. Se hai bisogno di qualcosa che non è incluso di default, allora hai bisogno per copiarlo come una fase di post-elaborazione. Per i pacchetti installabili, puoi farlo dallo script di configurazione che viene eseguito dopo aver popolato la cartella dell'applicazione autonoma. " Ma come farlo? Non ho un'idea. –

risposta

2

Il problema di non lanciare JavaFX exe risolto copiando JRE da "C: \ Program Files \ Java \ jdk_version \ jre" a \ bundles \ MyApplication \ runtime \ jre a costruire passaggi sulla creazione di exe come -

<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

Grazie

Problemi correlati