2013-05-15 11 views
5


Zazwyczaj wdrażam aplikacje Java jako pakiet zawierający JVM, więc nie ma potrzeby instalowania JVM w systemie.
Btw: To nie jest applet jnlp, to normalna aplikacja Swing.
Zrobiłem to za pomocą ant's fx:deploy. Działa to już w systemach 64-bitowych. Moim problemem jest to, że chcę wdrożyć tę aplikację w systemie 32-bitowym i nie sprawić, żeby działała.Pakowanie exe JavaFX dla systemów Windows x86

Oto co zrobiłem:
Skonfigurowałem czystą instancję Windows 7 (32-bitową) i zainstalowałem 32-bitową maszynę JVM. Teraz uruchomiłem skrypt mrówki, by zbudować pakietową aplikację Java i zbudowałem aplikację App.exe.
Ale gdy próbowałem uruchomić ten exe przez dwukrotne kliknięcie, pojawia się następujący komunikat
Failed to create JVM
Jeśli kliknę OK, mam inną okno komunikatu
Failed to launch JVM
Po tym aplikacja jest zakończone.
Nie znalazłem nic, co mogłoby przeszukać sieć związaną z łączeniem w pakiety dla systemów 32/64 bitowych.
Byłbym bardzo zadowolony, gdyby ktoś wskazał mi właściwy kierunek.
Wielkie dzięki z góry!
Pozdrowienia, -chris-

Odpowiedz

4

Wygląda na to znany błąd ustalonej dla przygotowywanej wersji JavaFX (znany obecnie jako 2.2.40):

na bug case, użytkownik wspomina o obejściu:

Jeśli spróbuję obejść tego problemu w dokumencie RT-22610, który ma na celu skopiowanie strony runtime \ jre \ bin \ msvcr100.dll do pliku binarnego programu uruchamiającego mojej aplikacji, naprawi to.

Myślę, że problem został rozwiązany w JDK 8, więc inne możliwe obejście jest pobranie JDK 8 early access release i korzystać z narzędzi do pakowania stamtąd do spakowania aplikacji Java 7 (chociaż nigdy nie próbowałem tego i nie jestem pewien, czy to zadziała).

+0

Dziękuję za odpowiedź, ale to nadal nie działa dla mnie. Exe zbudowany przez jdk8 po prostu nie robi nic, jeśli został uruchomiony. Nawet komunikat o błędzie. – Chris

+0

Wourkaround działa tutaj, na 32-bitowym Win XP w VirtualBox z pakietem natywnym, w tym java 7 jvm (wydaje mi się, że 45). –

+0

Pozostaje pytanie: Jak możemy zmusić instalatora do automatycznego umieszczenia biblioteki DLL we właściwym miejscu? –

2

Wystarczy niewielka modyfikacja Fix @ jewelsea za:

kopiowanie msvcr100.dll w folderze app/zamiast wprowadzenie go tuż obok exe działa także, a przynajmniej jest nieco ukryty wtedy.

0

Jeśli generujesz MSI, możesz zhakować plik WXS używany przez WIX, aby automatycznie skopiować plik msvcr100.dll do folderu aplikacji. Tworzenie verbose FX Deploy powie ci, gdzie umieszczasz tymczasowy plik WXS, który możesz skopiować i zmodyfikować, i użyć go do zastąpienia WXS, tak jak na przykład ikona programu.

Powiązane problemy