2011-11-18 11 views
5

Ho un file jnlp per la distribuzione della mia applicazione javafx 2.0, tuttavia, come faccio ad assicurarmi che gli utenti abbiano il corretto javafx runtime (32 o 64 bit a seconda della jvm presente sulla macchina) e se no, scaricalo e eseguire l'applicazione.Come distribuire correttamente un'applicazione JavaFx 2.0 desktop utilizzando jnlp per 32 e 64 bit?

Supponendo che l'utente non dispone di un runtime JavaFX attualmente installato, i problemi che sto di fronte per lo più con una macchina a 64 bit con entrambi a 32-bit, 64-bit o entrambi JRE sono:

1) La guida all'implementazione dell'oscillazione Javafx menziona l'uso del tag <jfx:javafx-runtime version /> per scaricare il runtime jfx appropriato, ma JRE sotto 1,7 non comprende questo tag/spazio dei nomi.

2) Se un jre a 32 bit è installato su una macchina a 64 bit, come installare la mia applicazione nella cartella "Programmi (x86)", scaricare e utilizzare runtime javafx a 32 bit.

3) Se su un computer a 64 bit è installato un jre a 64 bit, come installare la mia applicazione nella cartella "Programmi", scaricare e utilizzare il runtime javafx a 64 bit.

Ecco come il mio file JNLP sembra attualmente:

<?xml version="1.0" encoding="UTF-8"?> 
<jnlp spec="1.0+" codebase="file:///C%3A/Program%20Files/HP/Pulse/PulseLite"href="iMonLauncher.jnlp"> 
    <information>  
     <title>iMonLauncher</title> 
     <vendor>Administrator</vendor> 
     <homepage href="file:///C%3A/Program%20Files/HP/Pulse/PulseLite"/>  
     <description>iMonLauncher</description> 
     <offline-allowed/>  
    </information> 
    <security>  
     <all-permissions/> 
    </security> 
    <resources> 
     <j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/> 
     <jar href="iMon.jar" size="428419"/>   
     <jar href="lib/ibase-core.jar" size="197029"/> 
     <jar href="lib/ibase-fx.jar" size="210175"/> 
     <jar href="lib/imonDB.jar" main="true" size="156616"/> 
     <jar href="lib/imon-service.jar" main="true" size="73190"/> 
     </resources> 
    <application-desc name="iMon" main-class="imon.Main" > 
    </application-desc> 
    <update check="always"/> 

Il codebase cambia automaticamente, per puntare alla corretta cartella di file di programma a seconda dell'architettura.

Grazie in anticipo!

risposta

1

Ti manca xmlns: jfx namespace nel tuo jnlp. Dovrebbe inizia con

<jnlp spec="1.0" xmlns:jfx="http://javafx.com" href="iMonLauncher.jnlp"> 

Una volta che l'utente ha installato Java regolare e cliccato su tale file JNLP sarebbe stato presentato con il messaggio di download automatico di FX. Scoprirà quale java è utilizzata, scarica e installa la versione appropriata di javafx.

jnlp response

+0

ho usato il 'xmlns: namespace jfx' nel mio jnlp, ma penso che questo spazio dei nomi è riconosciuta solo in jre 1.7+ e non nelle versioni precedenti di JRE. Quindi, se l'utente ha jre 1.6+, questo spazio dei nomi viene completamente ignorato, senza javafx installato sul sistema e quindi l'applicazione non viene avviata. – Saurabh