如何在Raspberry Pi上运行javafx

时间:2015-02-20 10:27:01

标签: java javafx raspberry-pi java-8 raspbian

我有一个使用一些简单的JavaFX类的应用程序。我认为java 8默认包含这些类。但是,当我在运行oracle-java8-jdk的Raspberry Pi上运行一个非常简单的测试时(只是尝试创建一个Media对象),我得到一个错误,表明找不到该类。尝试使用相同的jar文件运行相同的测试时,我的PC上没有出现此错误:

Exception in thread "main" java.lang.NoClassDefFoundError: javafx/scene/media/Media
        at test.Test.main(Test.java:12)
Caused by: java.lang.ClassNotFoundException: javafx.scene.media.Media
        at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 1 more

如果我检查我停止的java版本,我会显示:

$ java -version
java version "1.8.0"
Java(TM) SE Runtime Environment (build 1.8.0-b132)
Java HotSpot(TM) Client VM (build 25.0-b70, mixed mode)

我在这里错过了一些令人沮丧的东西吗?我是否需要做一些特殊的事情来启用这些JavaFX类?

1 个答案:

答案 0 :(得分:2)

首先,根据OpenJFX

  

用于Raspberry Pi的JDK 8 EA构建包括对硬件加速图形的完全支持,包括基础,图形,控件和FXML模块。不包括媒体和Web模块。

早期的访问构建与您的一样,从未包含对媒体的访问权限。并且它没有包含在ARM 1.8.0_06(8u6)的最终版本中。

此外,在新版本1.8.0_33中,不再支持JavaFX,它已从捆绑的ARM中删除。

检查此question以获取更多详细信息。您仍然可以在Raspberry Pi上使用JavaFX,但Media不是一个选项。