Java Eclipse RCP在Ubuntu 16.04上崩溃,当使用Desktop.open(…)时,在gdk_display_open()中使用SIGABRT

Java Eclipse RCP在Ubuntu 16.04上崩溃,当使用Desktop.open(…)时,在gdk_display_open()中使用SIGABRT,java,eclipse-rcp,ubuntu-16.04,Java,Eclipse Rcp,Ubuntu 16.04,我们最近为一个EclipseRCP应用程序进行了跨平台构建。在Ubuntu 16.04上,当执行以下代码时: Desktop.getDesktop().open(somePath.toFile()) 它在gdk_显示_打开时与SIGABRT崩溃。我使用了Oracle的JVM和OpenJDK(JRE 8)来达到同样的效果 我想,好吧,让我先试试这个,如果不支持,就禁用这个功能: public static boolean isSupported() { return Desktop.is

我们最近为一个EclipseRCP应用程序进行了跨平台构建。在Ubuntu 16.04上,当执行以下代码时:

Desktop.getDesktop().open(somePath.toFile())
它在gdk_显示_打开时与SIGABRT崩溃。我使用了Oracle的JVM和OpenJDK(JRE 8)来达到同样的效果

我想,好吧,让我先试试这个,如果不支持,就禁用这个功能:

public static boolean isSupported()
{
    return Desktop.isDesktopSupported() &&
        Desktop.getDesktop().isSupported(Desktop.Action.OPEN);
}

它以完全相同的方式崩溃。我甚至不能确定桌面是通过代码支持的,而不会导致崩溃。我使用的代码在Windows甚至Mac上都可以正常工作。为什么会发生这种情况?是否有解决办法?请记住,这不是我能捕捉到的一个普通的旧Java异常,它在JVM中崩溃。

一个解决方法可能是尝试使用SWT
程序。launch
具有类似功能。这就解决了目前的问题:在Eclipse环境中,
程序。launch
确实是最简单的解决方法(我发现的另一个解决方法涉及到修改部分:)。我坚持使用
程序。现在启动