JavaFX - dystrybucja aplikacji

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

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.

0

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

0

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

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