如何在 Raspberry Pi 上 运行 javafx
How to run javafx on Raspberry Pi
我有一个应用程序使用了一些简单的 JavaFX classes。我的印象是 java 8 默认应该包含这些 classes。然而,当我 运行 对我的 Raspberry Pi 运行ning oracle-java8-jdk
进行一个非常简单的测试时(只是尝试创建一个 Media 对象)我得到一个错误显示 class 未找到。当我尝试 运行 使用相同的 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.run(URLClassLoader.java:372)
at java.net.URLClassLoader.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 classes?
对于初学者,根据 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 捆绑包中删除。
查看此 了解更多详细信息。您仍然可以在 Raspberry Pi 上使用 JavaFX,但不能选择媒体。
我有一个应用程序使用了一些简单的 JavaFX classes。我的印象是 java 8 默认应该包含这些 classes。然而,当我 运行 对我的 Raspberry Pi 运行ning oracle-java8-jdk
进行一个非常简单的测试时(只是尝试创建一个 Media 对象)我得到一个错误显示 class 未找到。当我尝试 运行 使用相同的 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.run(URLClassLoader.java:372)
at java.net.URLClassLoader.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 classes?
对于初学者,根据 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 捆绑包中删除。
查看此