导出运行JavaFX Scene3D的X Display

时间:2015-04-22 03:08:06

标签: java linux javafx x11 rhel

我有一个运行RHEL 6.5的Linux机箱,我有一个以下示例JavaFX应用程序的JAR https://docs.oracle.com/javase/8/javafx/sample-apps/MoleculeSampleApp.zip

我可以编译并运行它,没有错误,一切都正确显示(与https://docs.oracle.com/javase/8/javafx/graphics-tutorial/img/show-molecule.gif相同)。但是,当我尝试将我的显示导出到localhost:0.0时,我的每个Material,Shape3D和Mesh对象都出现以下错误:

警告:系统无法支持ConditionalFeature.SCENE3D

JavaFX应用程序打开,但窗口中没有3D对象。

我尝试导出到另一台RHEL 6.5 linux机箱,但同样的问题也出现了。

我安装了1.8.0_45 JDK和X11 Intel驱动程序版本2.2.12。

是否有一些X或JavaFX配置允许我正确地将应用程序导出到另一台机器?

编辑:

所以我使用以下两种方法运行JAR文件:

java -jar -Dprism.order=sw MoleculeSampleApp.jar
java -jar -Dprism.order=j2d MoleculeSampleApp.jar

不导出到localhost或其他显示器,并在我的本地计算机上遇到同样的问题。

这让我相信导出显示器会导致JavaFX停止使用硬件加速。

1 个答案:

答案 0 :(得分:1)

当我使用-Dprism.verbose = true选项运行程序时,我在输出中注意到以下内容:

Failed Graphics Hardware Qualifier check.
System GPU doesn't meet the es2 pipe requirement
Prism pipeline name = com.sun.prism.sw.SWPipeline

使用以下选项运行JavaFX jar文件似乎可以解决问题:

java -jar -Dprism.forceGPU=true MoleculeSampleApp.jar

然而,性能很差,可能需要在较旧的集成卡上通过网络导出3D渲染。