JavaFX - dystrybucja aplikacji

Odpowiedz Nowy wątek
2012-05-26 15:29

Rejestracja: 14 lat temu

Ostatnio: 3 lata temu

0

Hej! Udało mi się połączyć w Javie Swinga z JavaFX (chodziło mi o odtwarzanie mp3)...
Wszystko super działa jak uruchamiam program z poziomu NetBeans...
Jeśli uruchamiam plik jar poleceniem java -jar plik.jar to wyrzuca taki komunikat :

 C:\Users\Dell>java -jar C:\Users\Dell\Documents\NetBeansProjects\JavaApplication
1\dist\JavaApplication1.jar
Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: java.lang.Uns
atisfiedLinkError: Can't load library: C:\Users\Dell\Documents\NetBeansProjects\
JavaApplication1\dist\bin\glass.dll
        at com.sun.javafx.tk.quantum.QuantumToolkit.startup(QuantumToolkit.java:
277)
        at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:90)

        at javafx.embed.swing.JFXPanel.initFx(JFXPanel.java:178)
        at javafx.embed.swing.JFXPanel.<init>(JFXPanel.java:195)
        at javaapplication1.NewJFrame.<init>(NewJFrame.java:28)
        at javaapplication1.NewJFrame$4.run(NewJFrame.java:183)
        at java.awt.event.InvocationEvent.dispatch(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$000(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Sour
ce)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.UnsatisfiedLinkError: Can't load library: C:\Users\Dell\Doc
uments\NetBeansProjects\JavaApplication1\dist\bin\glass.dll
        at java.lang.ClassLoader.loadLibrary(Unknown Source)
        at java.lang.Runtime.load0(Unknown Source)
        at java.lang.System.load(Unknown Source)
        at com.sun.glass.utils.NativeLibLoader.loadLibraryFullPath(NativeLibLoad
er.java:143)
        at com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(NativeLibLoad
er.java:56)
        at com.sun.glass.utils.NativeLibLoader.loadLibrary(NativeLibLoader.java:
31)
        at com.sun.glass.ui.Application$1.run(Application.java:75)
        at java.security.AccessController.doPrivileged(Native Method)
        at com.sun.glass.ui.Application.loadNativeLibrary(Application.java:73)
        at com.sun.glass.ui.Application.loadNativeLibrary(Application.java:85)
        at com.sun.glass.ui.win.WinApplication.<clinit>(WinApplication.java:33)
        at com.sun.glass.ui.win.WinPlatformFactory.createApplication(WinPlatform
Factory.java:20)
        at com.sun.glass.ui.win.WinPlatformFactory.createApplication(WinPlatform
Factory.java:17)
        at com.sun.glass.ui.Application.Run(Application.java:108)
        at com.sun.javafx.tk.quantum.QuantumToolkit.startup(QuantumToolkit.java:
267)
        ... 19 more

Jeśli skopiuje folder C:\Program Files\Oracle\JavaFX 2.1 SDK\rt\bin do katalogu z projektem to wtedy działa poza NetBeansem...

Czyli pod każdy system operacyjny trzeba będzie osobną wersję przygotowywać (chodzi o pliki z katalogi bin) ?

Dostęp do JavyFX z aplikacji Swingowej robię tak, że w NetBeans, we właściwościach projektu wybieram Libraries, Add JAR/Folder i dodaję bibliotekę C:\Program Files\Oracle\JavaFX 2.1 SDK\lib\jfxrt.jar

Z góry dzięki za odpowiedzi :)

Pozostało 580 znaków

2012-05-27 11:32

Rejestracja: 12 lat temu

Ostatnio: 3 lata temu

0

Z tego co kojarze to jest tak: Ty robiac aplikację zainstalowałeś javafx SDK. Można powiedzieć ze jest to rozszerzenie standardowego SDK Javy. Tak samo po stronie klienta musi być: klient ma JRE ale by Twoja app ruszyła on musi mieć Java FX JRE. Ty bedziesz musiał aplikację tylko raz skompilować ale w wymaganiach musisz dać ze na kompie gdzie to ma byc uruchomione musi być java fx JRE.


Another jam from the world for the jam from the voices of the world......

Pozostało 580 znaków

2012-05-27 11:52

Rejestracja: 14 lat temu

Ostatnio: 1 minuta temu

0

Tu jest chyba podobny problem: https://forums.oracle.com/forums/thread.jspa?messageID=9777723 i jest tam jakieś rozwiązanie.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.

Pozostało 580 znaków

2012-05-27 19:32

Rejestracja: 14 lat temu

Ostatnio: 3 lata temu

0

Hmm ale chyba część "wykonawcza" JavyFX jest zawarta w paczce z 1.7 update 4.....

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0