在 Eclipse 中使用 JavaFX

Using JavaFX in eclipse

嘿,我已经开始了一个 Java 项目,我想使用 JavaFX。

我将 jfxrt.jar 复制到 lib 文件夹中,并将其作为外部 jar 添加到我的项目中。

我试过这个例子https://docs.oracle.com/javase/8/javafx/interoperability-tutorial/swing-fx-interoperability.html 但我收到此错误:

Picked up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: java.lang.UnsatisfiedLinkError: Can't load library: /home/spierki/Workspace/JavaProjects/Projet_GMD/lib/amd64/libglass.so at com.sun.javafx.tk.quantum.QuantumToolkit.startup(QuantumToolkit.java:281) at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:122) at javafx.embed.swing.JFXPanel.initFx(JFXPanel.java:182) at javafx.embed.swing.JFXPanel.(JFXPanel.java:199) at mainActivity.MainActivity.initAndShowGUI(MainActivity.java:29) at mainActivity.MainActivity.access(MainActivity.java:26) at mainActivity.MainActivity.run(MainActivity.java:68) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756) at java.awt.EventQueue.access0(EventQueue.java:97) at java.awt.EventQueue.run(EventQueue.java:709) at java.awt.EventQueue.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain.doIntersectionPrivilege(ProtectionDomain.java:75) at java.awt.EventQueue.dispatchEvent(EventQueue.java:726) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) Caused by: java.lang.UnsatisfiedLinkError: Can't load library: /home/spierki/Workspace/JavaProjects/Projet_GMD/lib/amd64/libglass.so at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1825) at java.lang.Runtime.load0(Runtime.java:809) at java.lang.System.load(System.java:1086) at com.sun.glass.utils.NativeLibLoader.loadLibraryFullPath(NativeLibLoader.java:200) at com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:88) at com.sun.glass.utils.NativeLibLoader.loadLibrary(NativeLibLoader.java:31) at com.sun.glass.ui.Application.loadNativeLibrary(Application.java:73) at com.sun.glass.ui.Application.loadNativeLibrary(Application.java:80) at com.sun.glass.ui.gtk.GtkPlatformFactory.run(GtkPlatformFactory.java:28) at com.sun.glass.ui.gtk.GtkPlatformFactory.run(GtkPlatformFactory.java:25) at java.security.AccessController.doPrivileged(Native Method) at com.sun.glass.ui.gtk.GtkPlatformFactory.(GtkPlatformFactory.java:25) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:264) at com.sun.glass.ui.PlatformFactory.getPlatformFactory(PlatformFactory.java:20) at com.sun.glass.ui.Application.Run(Application.java:103) at com.sun.javafx.tk.quantum.QuantumToolkit.startup(QuantumToolkit.java:271) ... 20 more

我使用的是 luna 版本的 eclipse,我尝试 运行 使用 openjdk-7 和 openjdk-8 的项目,但其中 none 正在运行。

在 Eclipse 中,打开 Help -> Eclipse Marketplace.. 并在 Find[=19] 中输入 javafx =] 字段。安装 e(fx)clipse 1.0.0。当 Eclipse 重新启动时,您会发现可以从新建项目向导对话框中创建 JavaFX 项目。也不需要手动包含 jfxrt.jar,它是默认包含的。

详细了解此 e(fx)clipse plugin here