【问题标题】:JavaFX 8: rendering messed up on LinuxJavaFX 8:在 Linux 上渲染混乱
【发布时间】:2014-12-03 12:57:56
【问题描述】:

以下是我的 Debian Wheezy 工作站上 Oracle 的 JavaFX“Hello World”示例屏幕截图的两个链接。

第一个是用JDK6u67构建的,目标是1.7,用对应的JRE运行:
Java 7 screenshot

第二个是用JDK8u20构建的,目标是1.8,用对应的JRE运行:
Java 8 screenshot

如您所见,在运行 Java 8 时呈现非常错误。另请注意,在第二张屏幕截图中漂亮的应用程序图标已被 X 服务器图标替换。
值得注意的是,“好”的构建,即 Java 7,在使用 Java 8 运行时也很糟糕。

任何一个构建都可以在 Windows 上正常运行。
知道可能出了什么问题吗?

关于我的系统的一些信息: $ X -版本
X.Org X 服务器 1.12.4
发布日期:2012-08-27
X 协议版本 11,修订版 0
构建操作系统:Linux 3.11-2-amd64 x86_64 Debian
当前操作系统:Linux babasee 3.2.0-4-amd64 #1 SMP Debian 3.2.60-1+deb7u3 x86_64
内核命令行:BOOT_IMAGE=/vmlinuz-3.2.0-4-amd64 root=/dev/mapper/babasee-root ro quiet
构建日期:2013 年 12 月 17 日晚上 7:37:58
xorg-server 2:1.12.4-6+deb7u2 (Julien Cristau)
pixman 当前版本:0.26.0

【问题讨论】:

    标签: java linux javafx rendering


    【解决方案1】:

    您可以通过禁用 OpenGL 渲染来解决此问题,如 How to disable or bypass Hardware Graphics Acceleration(Prism) in JavaFX 所述。

    -Dprism.order=j2d 添加到您的命令行,或者将System.setProperty("prism.order", "j2d"); 放在程序的开头。

    更新:首选属性值现在是-Dprism.order=sw

    【讨论】:

    • System.setProperty("prism.order", "j2d"); 放在程序开头将无法在 javafx8 中使用,只有 -Dprism.order=sw 可以使用。系统属性的读取是在 main() 调用之前运行的静态初始化中完成的。详见 javafx-src 中的 com.sun.prism.impl.PrismSettings.java
    【解决方案2】:

    我喜欢安装 nvidia-glx 软件包

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-16
      • 1970-01-01
      • 1970-01-01
      • 2017-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多