2013-05-15 23 views
5


In genere distribuisco le mie app Java come un bundle che contiene la JVM, quindi non è necessario installare una JVM sul sistema.
Btw: Questa non è un'applet jnlp, questa è una normale applicazione Swing.
L'ho fatto usando il numero fx:deploy della formica. Questo funziona già per i sistemi a 64 bit. Il mio problema è che voglio installare questa applicazione su un sistema a 32 bit e non farlo funzionare.JavaFX exe bundling per sistemi x86 windows

Ecco cosa ho fatto:
Ho installato un'istanza di Windows 7 (32 bit) pulita e installato una JVM a 32 bit. Ora ho eseguito il mio script ant per creare un'app Java in bundle e ha creato un App.exe.
Ma quando ho cercato di iniziare questo exe con un doppio clic, ottengo il seguente finestra di messaggio
Failed to create JVM
Se scatto OK, ottengo un'altra finestra di messaggio
Failed to launch JVM
Dopo questo l'applicazione viene terminata.
Non ho trovato nulla che cercasse sul web in relazione al bundling per sistemi a 32/64 bit.
Quindi sarei molto felice se qualcuno potesse indicarmi la giusta direzione.
Molte grazie in anticipo!
Saluti, -chris-

risposta

4

Sembra come un bug noto fisso per una prossima versione di JavaFX (attualmente conosciuto come 2.2.40):

Sul caso bug, l'utente menziona un work-around:

Se io do una prova per la soluzione documentato in RT-22610, che è quello di copiare runtime \ jre \ bin \ lato msvcr100.dll al binario lanciatore di mia domanda, è lo ripara.

Penso che il bug è stato risolto in JDK 8, quindi un altro possibile work-around è quello di scaricare un JDK 8 early access release e utilizzare gli strumenti di packaging da lì per confezionare un'applicazione Java 7 (anche se non ho mai provato e non sono sicuro se avrebbe funzionato).

+0

Grazie per la risposta, ma questo non è ancora lavorando per me. L'exe creato da jdk8 non fa nulla se avviato. Neanche un messaggio di errore. – Chris

+0

Il wourkaround funziona qui, su Win XP a 32 bit in un VirtualBox con un pacchetto nativo che include java 7 jvm (upadate 45, penso). –

+0

La domanda rimanente è: come possiamo ottenere il programma di installazione per mettere automaticamente la DLL nel posto giusto? –

2

Basta una piccola modifica al Fix @ di jewelsea:

copia msvcr100.dll in app/cartella invece metterlo proprio accanto alla exe funziona anche, e almeno è un po 'nascosto, allora.

0

Se si sta generando un MSI si può incidere il file WXS usato da WIX per copiare automaticamente msvcr100.dll nella cartella app. Fare una distribuzione dettagliata di FX ti dirà dove si trova il file WXS temporaneo che puoi copiare e modificare e usare per sovrascrivere il WXS come faresti con l'icona del programma.