在无头Linux RedHat系统上启动Java FX应用程序时出错

时间:2014-03-06 15:35:32

标签: java linux javafx rhel

尝试使用X在Linux系统上启动java FX应用程序。我得到以下堆栈跟踪。经过一堆谷歌搜索和安装各种包,我不知所措。有什么想法吗?

java -jar tacoma_testing.jar 
Prism-ES2 Error : GL_VERSION (major.minor) = 1.4
java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at com.javafx.main.Main.launchApp(Main.java:698)
    at com.javafx.main.Main.main(Main.java:871)
Caused by: java.lang.RuntimeException: java.lang.UnsatisfiedLinkError: /projects/tacoma/tacoma_regression_testing/jdk1.7.0_25/jre/lib/amd64/libglass.so: libgio-2.0.so.0: cannot open shared object file: No such file or directory
    at com.sun.javafx.tk.quantum.QuantumToolkit.startup(QuantumToolkit.java:281)
    at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:124)
    at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:163)
    at com.sun.javafx.application.LauncherImpl.access$000(LauncherImpl.java:47)
    at com.sun.javafx.application.LauncherImpl$1.run(LauncherImpl.java:115)
    at java.lang.Thread.run(Thread.java:724)
Caused by: java.lang.UnsatisfiedLinkError: /projects/tacoma/tacoma_regression_testing/jdk1.7.0_25/jre/lib/amd64/libglass.so: libgio-2.0.so.0: cannot open shared object file: No such file or directory
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1957)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1882)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1843)
    at java.lang.Runtime.load0(Runtime.java:795)
    at java.lang.System.load(System.java:1061)
    at com.sun.glass.utils.NativeLibLoader.loadLibraryFullPath(NativeLibLoader.java:200)
    at com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:88)
    at com.sun.glass.utils.NativeLibLoader.loadLibrary(NativeLibLoader.java:31)
    at com.sun.glass.ui.Application.loadNativeLibrary(Application.java:73)
    at com.sun.glass.ui.Application.loadNativeLibrary(Application.java:80)
    at com.sun.glass.ui.gtk.GtkPlatformFactory$1.run(GtkPlatformFactory.java:28)
    at com.sun.glass.ui.gtk.GtkPlatformFactory$1.run(GtkPlatformFactory.java:25)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.glass.ui.gtk.GtkPlatformFactory.<clinit>(GtkPlatformFactory.java:25)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:190)
    at com.sun.glass.ui.PlatformFactory.getPlatformFactory(PlatformFactory.java:20)
    at com.sun.glass.ui.Application.Run(Application.java:103)
    at com.sun.javafx.tk.quantum.QuantumToolkit.startup(QuantumToolkit.java:271)
    ... 5 more

1 个答案:

答案 0 :(得分:1)

Redhat未列为JavaFX 2.2的supported configuration。 也没有以无头模式运行JavaFX。

Java 8可能会有所改变,但Java 8尚未发布,因此Java 8上运行的JavaFX支持配置列表尚未发布。

目前,Linux支持的配置集仅为&gt; Ubuntu 10.4+ gtk2 2.18+,如果您还想要媒体播放支持,还可以选择AV编解码器。

因此,尝试使用受支持的Ubuntu系统而不是Redhat,您可能会或可能不会在无头环境中使用它。

  

我测试过,它在Redhat 6下工作正常.Redhat 5似乎是问题所在。

将为Java 8添加Redhat Enterprise Linux 6支持(将在未来几周内发布)。

RHEL 5.5支持请求已关闭,因为无法修复,请参阅RT-22564 "JavaFX Support for Red Hat Enterprise Linux 5.5"

如果你能找到一种在RHEL 5上安装gtk2 2.18+的方法,你可以让它工作,虽然没有承诺。