Eclipse 显示带有 Java 9 的空错误消息

Eclipse shows empty error message with Java 9

我已经安装了 Java 9 插件。我的项目没有改变,但是当我尝试 运行 时,我得到这个:

如果您需要其他任何信息,请随时评论您没有足够的信息。

我的 .log 文件:https://pastebin.com/SQXZVcQk

根据我的理解,这似乎是配置问题。有两种可能causes/solution:

  1. 来自日志:

    Root exception:
    java.lang.ExceptionInInitializerError
        at com.jniwrapper.util.ProcessorInfo.b(SourceFile:95)
    Caused by: com.jniwrapper.LibraryNotFoundException: Cannot find JNIWrapper native library (jniwrap64.dll) in java.library.path:
    

    Eclipse 无法正确配置 java.library.path,在这种情况下,您可以尝试在命令行中使用以下命令设置 VM 参数:

    -Djava.library.path="${workspace_loc:project}\lib;${env_var:PATH}"
    

    查看 How to add native library to "java.library.path" with Eclipse launch (instead of overriding it) 了解更多详细信息和特定于平台的解决方案。

    && 确保包含 jdk-9 早期访问版本的路径,理想情况下,它应该是基于 Java9.[=20= 使用的插件所必需的]

  2. 此外,日志显示

    !ENTRY org.eclipse.ui 4 0 2017-08-27 09:22:31.358
    !MESSAGE Unhandled event loop exception
    !STACK 0
    java.lang.ArrayIndexOutOfBoundsException: -1
        at es.org.chemi.games.snake.ui.GameField.createGameField(GameField.java:217)
        at es.org.chemi.games.snake.ui.GameField.controlResized(GameField.java:99)
        at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:236)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:86)
        at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4428)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1079)
    

    对于相关代码,您可能需要查看以下代码的实现 createGameField at GameField.java:217。如果这不是专门发生在以前的 java 版本上,那么解决 (1) 应该摆脱这个,否则你可能想尝试 Eclipse Bug: Unhandled event loop exception No more handles 的解决方案。

在 eclipse 中收到相同的错误后,我通过选择此选项而不是默认选项(快照中的红色箭头突出显示)来修复它