java - 如何在树莓派上运行javafx

标签 java javafx raspberry-pi java-8 raspbian

我有一个使用一些简单 JavaFX 类的应用程序。我的印象是 java 8 应该默认包含这些类。然而,当我在运行 oracle-java8-jdk 的 Raspberry Pi 上运行一个非常简单的测试时(只需尝试创建一个 Media 对象),我收到一条错误,显示未找到该类。当尝试使用相同的 jar 文件运行相同的测试时,我的电脑上没有出现此错误:

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 类吗?

最佳答案

对于初学者来说,根据 OpenJFX :

JDK 8 EA builds for the Raspberry Pi include full support for hardware accelerated graphics, with everything from the base, graphics, controls and FXML modules. Media and Web modules are not included.

因此,像您这样的早期访问版本从未包含对媒体的访问。它没有包含在 ARM 1.8.0_06 (8u6) 的最终版本中。

此外,在新版本 1.8.0_33 中,不再支持 JavaFX,并将其从 ARM bundle 中删除。

检查这个question有关此的更多详细信息。您仍然可以在 Raspberry Pi 上使用 JavaFX,但不能选择媒体。

关于java - 如何在树莓派上运行javafx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28626706/

相关文章:

java - getCanonicalPath 返回不同平台之间的不同路径

具有自定义数据格式的 JavaFX DragAndDrop

netbeans - 使用 JavaFX Scene Builder 2.0 同时显示两个窗口

java - Java 媒体组件发生了什么变化?

java - 将多个注释与参数合并

java - 按时间升序对 Hashmap 数组进行排序

python - 从ALSA Raspberry Pi获取音频振幅

ios - 带有 Bluez 和 Bleno 的覆盆子蓝牙外设

Java多接口(interface)继承与值传递

python - 控制 Volumio 的音量