我知道甲骨文在8u33中删除了JavaFX,但我想知道为什么我不能在jdk1.8.0中使用JavaFX?我是从甲骨文档案馆(http://download.oracle.com/otn/java/jdk/8-b132/jdk-8-linux-arm-vfp-hflt.tar.gz)得到的
我在/usr/bin/java_8_arm/jdk1.8.0中提取了这个文件,并且正在使用sudo /usr/bin/java_8_arm/jdk1.8.0/bin/java -jar jarfile.jar运行我的.jar文件
运行/usr/bin/java_8_arm/jdk1.8.0/bin/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)并运行System.out.println("Running Java version: " + Runtime.class.getPackage().getImplementationVersion());
返回Running Java Version: 1.8.0
我得到的错误是:
Exception in thread "main" java.lang.NoClassDefFoundError: javafx/embed/swing/JFXPanel
at front_end.GUI.initGUI(GUI.java:47)
at back_end.Run.main(Run.java:28)
Caused by: java.lang.ClassNotFoundException: javafx.embed.swing.JFXPanel
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)
... 2 more如果您想知道,我正在编程并通过Windows 7将程序编译成共享文件,并从Raspberry Pi运行JAR。
inb4“为什么需要在raspberry pi上使用javafx”来呈现html,因为其他java组件只支持HTML3.2。我试过其他渲染器。这是我唯一能在我的桌面上工作的,更不用说RPi了。
另外,我也在1.8.0上编程和编译。
更新:
根据JoséPereda的回答,我已经下载了JavaFX文件并将它们放在我最初的java安装中(我现在使用/usr/bin/jdk8u6/作为我的文件夹,显然是jdk1.8.0_06)。
下面是我的安装层次结构,从lib目录开始:
/usr/bin/jdk8u6/lib/:
arm ext javafx.properties jfxswt.jar tools.jar
ct.sym ir.idl jconsole.jar orb.idl
dt.jar javafx.platform.properties jexec sa-jdi.jar
/usr/bin/jdk8u6/lib/arm:
jli libgstreamer-lite.so libjfxmedia.so
libdecora_sse.so libjavafx_font_freetype.so libjfxwebkit.so
libfxplugins.so libjavafx_font_pango.so libprism_common.so
libglass_monocle.so libjavafx_font.so libprism_es2_eglfb.so
libglass_monocle_x11.so libjavafx_iio.so libprism_es2_monocle.so
libglass.so libjawt.so libprism_sw.so
/usr/bin/jdk8u6/lib/arm/jli:
libjli.so
/usr/bin/jdk8u6/lib/ext:
jfxrt.jar我还是会犯同样的错误。
发布于 2016-06-29 15:04:55
您可以从这里下载ARM的更新和升级版本的JavaFX:JavaFX嵌入式SDK
一旦下载到Raspberry Pi上,您将需要提取内容并将其复制到JDK1.8中(检查此链接是否嵌入)。
您将能够在Pi上运行ARM*的最新JavaFX版本,包括WebView控件。
另外,使用IDE的胶子插件,您也可以在Pi上部署远距离项目。
编辑
* ARM :请注意,ARM的JavaFX从来不支持Swing。其他功能,如WebView和媒体也不支持,但最近这些已经包括在胶子的构建。
https://stackoverflow.com/questions/38102348
复制相似问题