我在一个特定项目的运行配置中遇到了一些问题。我已更新 Eclipse Oxygen 以使用 Java 9,并且能够清除任何编译器错误。当我去运行/调试时,会发生错误,这就是日志中的内容:
!ENTRY org.eclipse.core.jobs 4 2 2017-09-29 13:51:28.520
!MESSAGE An internal error occurred during: "Launching (My Run Config Name)".
!STACK 0
java.lang.NullPointerException
at org.eclipse.jdt.launching.JavaRuntime.computeUnresolvedRuntimeDependencies(JavaRuntime.java:954)
at org.eclipse.jdt.launching.StandardClasspathProvider.computeUnresolvedClasspath(StandardClasspathProvider.java:53)
at org.eclipse.jdt.launching.JavaRuntime.computeUnresolvedRuntimeClasspath(JavaRuntime.java:1502)
at org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate.getBootpathExt(AbstractJavaLaunchConfigurationDelegate.java:299)
at org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate.getVMSpecificAttributesMap(AbstractJavaLaunchConfigurationDelegate.java:615)
at org.eclipse.jdt.launching.JavaLaunchDelegate.launch(JavaLaunchDelegate.java:71)
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:885)
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:739)
at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1039)
at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1256)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
只需转到运行配置并查看此配置,我就会在日志中得到相同的错误,因此配置不可编辑。
我没有看到我的其他配置存在问题,但该项目要小得多且不那么复杂。但是,如果我回滚到 1.7 JDK,它们都可以工作。
我仍然只是使用 .classpath 文件,还没有开始处理模块信息文件,不确定这是否是个问题。这是 JRE_CONTAINER 的 .classpath 条目的样子(但在其他工作项目上看起来相同,所以不确定是否有任何问题。我添加的唯一模块是 java.xml.ws):
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="module" value="true"/>
<attribute name="limit-modules" value="java.se,javafx.base,javafx.controls,javafx.fxml,javafx.graphics,javafx.media,javafx.swing,javafx.web,jdk.accessibility,jdk.attach,jdk.compiler,jdk.httpserver,jdk.jartool,jdk.javadoc,jdk.jconsole,jdk.jdi,jdk.management,jdk.packager,jdk.plugin.dom,jdk.sctp,jdk.security.auth,jdk.security.jgss,jdk.unsupported,oracle.desktop,oracle.net,jdk.dynalink,jdk.incubator.httpclient,jdk.jfr,jdk.jshell,jdk.jsobject,jdk.management.cmm,jdk.management.jfr,jdk.management.resource,jdk.net,jdk.packager.services,jdk.scripting.nashorn,jdk.xml.dom,java.xml.ws"/>
</attributes>
</classpathentry>