如何强制JavaFX应用程序使用GTK 3库?我知道SWT允许设置环境变量
SWT_GTK3 = 1以实现此目的。是否有任何类似的可能性/解决方法适用于JavaFX?
新功能(8087516: Linux 上对 GTK 3 的条件支持)允许在 JavaFX 中使用 GTK v2 或 v3。默认值未更改:默认情况下使用 GTK 2。
通过设置以下属性来切换 GTK 版本:
// Output the version detected and used
-Djdk.gtk.verbose=true
// Toggle the preferred version to GTK 3
-Djdk.gtk.version=3
有关详细信息,请参阅OpenJDK邮件列表线程。
之前的JavaFX版本使用了GTK2库。有关详细信息,请参见相关问题。现在JavaFX错误在以下位置:
最后一个问题有一个评论:
由于在同一应用程序中混合使用GTK2和GTK3会导致这个问题,因此我们可能需要提供两个本机库,一个用于GTK2,另一个用于GTK3。
这个问题没有简单的解决方案。JavaFX有自己的渲染框架。据我所知,它基于OpenGL并且不使用任何本地代码。如果没有这个,JavaFX将无法使用CSS和视觉效果来设计UI。
如果你真的需要这个功能,那么你必须编写自己的库,使用JavaFX场景图和其他工具来模拟Gtk3。但是这样做将无法访问本地组件。