2015-02-06 41 views
0

我在我的beaglebone黑色上下载并安装了JDK8u33 for ARM,并根据本文档(http://docs.oracle.com/javase/8/embedded/jdk-arm-8u6/index.html)包含并支持javafx。无法在JDK8中找到JavaFX for Arm

但是,我无法在JRE或JDK中的任何位置找到jfxrt.jar,并且在简单的javafx程序上使用javac时产生“javafx.application”不是一个包。

是怎么回事?

+0

上[使用JavaFX上的覆盆子裨](相关问题http://stackoverflow.com/questions/28284239/javafx-ensemble-on-raspberry-pi:从它的实际路径JavaFX的旧样品之一) – jewelsea 2015-02-06 18:46:57

+0

@jewelsea是的,我打算发布它作为评论,我是否删除我的答案? – 2015-02-06 18:48:43

+0

不,保持。我正在考虑把问题作为一个重复的问题来处理,但这个问题比较普遍,所以我认为将问答留在这里是很好的,即使它们有点类似。 – jewelsea 2015-02-06 18:50:43

回答

4

由于@eckig说,自ARM版8u33以来,Oracle已经从ARM发行版中删除了JavaFX。

要运行任何JavaFX应用程序,您可以将您的版本降级到支持JavaFX的最后一个JDK8u6,或者您可以提供有效的jfxrt.jar

您可以在tutorial之后执行此操作,交叉构建OpenJFX for ARM,或者仅使用一些已经构建的分发,如在JavaFXPorts项目上托管的one

一旦你已经下载armv6hf-sdk.zip,解压缩它,你需要添加此命令行选项,这个外部电源连接到类路径,扩展机制:

-Djava.ext.dirs=<path to armv6hf-sdk>/rt/lib/ext 

例如,你需要这个运行

sudo /opt/jdk1.8.0_33/bin/java -Djava.ext.dirs=<path to armv6hf-sdk>/rt/lib/ext -jar BrickBreaker.jar 
+0

我的理解是,每次尝试启动javafx程序时都需要添加该选项?无论如何...永久添加它? – 2015-02-06 18:51:55

+2

那么你可以创建一个脚本文件来支持它 – 2015-02-06 18:52:57

+0

你可以考虑将'rt/lib/ext'和'rt/lib/ext'的内容直接安装到你的JVM中(例如:$ JAVA_HOME/jre/lib/ext'和'$ JAVA_HOME/jre/lib/arm'。这将消除使用'-Djava.ext.dirs = <路径到armv6hf-sdk>/rt/lib/ext'指令运行应用程序的需要。 – 2015-02-20 17:57:03