JDK-9 不让我使用字符串:"java.lang.String is ambiguous"?

JDK-9 won't let me use Strings: "java.lang.String is ambiguous"?

一周前,我的每个项目都正常运行,但是当我将 Eclipse 更新到 Oxygen 版本并安装 JDK-9 时,事情就变得奇怪了。 当我尝试使用字符串时,一段时间后(更像是每次我保存项目时),编译器会为我项目中的每个字符串抛出一个错误。


字符串类型被识别为不明确的 class



"The type java.lang.String is ambiguous"

所以我尝试导入 java.lang.String 以查看它是否修复了错误:

导入后

"The package java.lang is accessible from more than one module: java.base, java.base"

惊喜!

没有:(
我尝试在 Google 和 SO 上搜索这些消息,但我什么也没找到...
不过JDK8中的代码运行ning似乎运行正常,查看一下:

更改为 JDK 8 (1.8.0_72)

(代码在Apply之前没有显示任何错误,因为我已经应用了,再次打开编译器首选项截图)

控制台错误:

Error: Main method not found in class me.mateusakino.ypul.yPuLTester, please define the main method as:
public static void main(String[] args) or a JavaFX application class must extend javafx.application.Application

编辑 1 - 主要 class

EDIT 5 - Edit 4 (workspace/.metadata/.log)

错误的堆栈跟踪
!SESSION 2017-10-13 13:11:39.551 -----------------------------------------------
eclipse.buildId=4.7.1.M20171009-0410
java.version=9
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
Framework arguments:  -product org.eclipse.epp.package.java.product
Command-line arguments:  -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.java.product

This is a continuation of log file C:\Users\Home\Desktop\Developer Folders\Java\Oxygen Workspace\.metadata\.bak_0.log
Created Time: 2017-10-13 13:43:14.245

!ENTRY org.eclipse.core.resources 4 75 2017-10-13 13:43:14.245
!MESSAGE Errors occurred during the build.
!SUBENTRY 1 org.eclipse.jdt.core 4 75 2017-10-13 13:43:14.245
!MESSAGE Errors running builder 'Java Builder' on project 'yPuL'.
!STACK 0
java.lang.NullPointerException
    at org.eclipse.jdt.internal.compiler.lookup.ModuleBinding$UnNamedModule.canAccess(ModuleBinding.java:71)
    at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage(PackageBinding.java:230)
    at org.eclipse.jdt.internal.compiler.lookup.Scope.getPackage(Scope.java:2922)
    at org.eclipse.jdt.internal.compiler.ast.QualifiedTypeReference.getTypeBinding(QualifiedTypeReference.java:108)
    at org.eclipse.jdt.internal.compiler.ast.ArrayQualifiedTypeReference.getTypeBinding(ArrayQualifiedTypeReference.java:93)
    at org.eclipse.jdt.internal.compiler.ast.TypeReference.internalResolveType(TypeReference.java:495)
    at org.eclipse.jdt.internal.compiler.ast.ArrayQualifiedTypeReference.internalResolveType(ArrayQualifiedTypeReference.java:107)
    at org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveType(TypeReference.java:586)
    at org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveType(TypeReference.java:582)
    at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.resolveTypesWithSuspendedTempErrorHandlingPolicy(SourceTypeBinding.java:1932)
    at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.resolveTypesFor(SourceTypeBinding.java:1835)
    at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.methods(SourceTypeBinding.java:1525)
    at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.internalFaultInTypeForFieldsAndMethods(SourceTypeBinding.java:907)
    at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.faultInTypesForFieldsAndMethods(SourceTypeBinding.java:902)
    at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.faultInTypes(CompilationUnitScope.java:514)
    at org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:882)
    at org.eclipse.jdt.internal.compiler.ProcessTaskManager.run(ProcessTaskManager.java:141)
    at java.base/java.lang.Thread.run(Thread.java:844)

!ENTRY org.eclipse.core.resources 4 2 2017-10-13 13:43:24.691
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.core.resources".
!STACK 0
java.lang.NullPointerException

!ENTRY org.eclipse.core.resources 4 75 2017-10-13 13:43:24.695
!MESSAGE Errors occurred during the build.
!SUBENTRY 1 org.eclipse.jdt.core 4 75 2017-10-13 13:43:24.695
!MESSAGE Errors running builder 'Java Builder' on project 'yPuL'.
!STACK 0
java.lang.NullPointerException

!ENTRY org.eclipse.core.resources 4 2 2017-10-13 13:43:39.104
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.core.resources".
!STACK 0
java.lang.NullPointerException

!ENTRY org.eclipse.core.resources 4 75 2017-10-13 13:43:39.110
!MESSAGE Errors occurred during the build.
!SUBENTRY 1 org.eclipse.jdt.core 4 75 2017-10-13 13:43:39.110
!MESSAGE Errors running builder 'Java Builder' on project 'yPuL'.
!STACK 0
java.lang.NullPointerException

!ENTRY org.eclipse.core.resources 4 2 2017-10-13 13:44:37.810
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.core.resources".
!STACK 0
java.lang.NullPointerException
    at org.eclipse.jdt.internal.compiler.lookup.ModuleBinding$UnNamedModule.canAccess(ModuleBinding.java:71)
    at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage(PackageBinding.java:230)
    at org.eclipse.jdt.internal.compiler.lookup.Scope.getPackage(Scope.java:2922)
    at org.eclipse.jdt.internal.compiler.ast.QualifiedTypeReference.getTypeBinding(QualifiedTypeReference.java:108)
    at org.eclipse.jdt.internal.compiler.ast.ArrayQualifiedTypeReference.getTypeBinding(ArrayQualifiedTypeReference.java:93)
    at org.eclipse.jdt.internal.compiler.ast.TypeReference.internalResolveType(TypeReference.java:495)
    at org.eclipse.jdt.internal.compiler.ast.ArrayQualifiedTypeReference.internalResolveType(ArrayQualifiedTypeReference.java:107)
    at org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveType(TypeReference.java:586)
    at org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveType(TypeReference.java:582)
    at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.resolveTypesWithSuspendedTempErrorHandlingPolicy(SourceTypeBinding.java:1932)
    at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.resolveTypesFor(SourceTypeBinding.java:1835)
    at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.methods(SourceTypeBinding.java:1525)
    at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.internalFaultInTypeForFieldsAndMethods(SourceTypeBinding.java:907)
    at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.faultInTypesForFieldsAndMethods(SourceTypeBinding.java:902)
    at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.faultInTypes(CompilationUnitScope.java:514)
    at org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:882)
    at org.eclipse.jdt.internal.compiler.ProcessTaskManager.run(ProcessTaskManager.java:141)
    at java.base/java.lang.Thread.run(Thread.java:844)

!ENTRY org.eclipse.core.resources 4 75 2017-10-13 13:44:37.814
!MESSAGE Errors occurred during the build.
!SUBENTRY 1 org.eclipse.jdt.core 4 75 2017-10-13 13:44:37.814
!MESSAGE Errors running builder 'Java Builder' on project 'yPuL'.
!STACK 0
java.lang.NullPointerException
    at org.eclipse.jdt.internal.compiler.lookup.ModuleBinding$UnNamedModule.canAccess(ModuleBinding.java:71)
    at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage(PackageBinding.java:230)
    at org.eclipse.jdt.internal.compiler.lookup.Scope.getPackage(Scope.java:2922)
    at org.eclipse.jdt.internal.compiler.ast.QualifiedTypeReference.getTypeBinding(QualifiedTypeReference.java:108)
    at org.eclipse.jdt.internal.compiler.ast.ArrayQualifiedTypeReference.getTypeBinding(ArrayQualifiedTypeReference.java:93)
    at org.eclipse.jdt.internal.compiler.ast.TypeReference.internalResolveType(TypeReference.java:495)
    at org.eclipse.jdt.internal.compiler.ast.ArrayQualifiedTypeReference.internalResolveType(ArrayQualifiedTypeReference.java:107)
    at org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveType(TypeReference.java:586)
    at org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveType(TypeReference.java:582)
    at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.resolveTypesWithSuspendedTempErrorHandlingPolicy(SourceTypeBinding.java:1932)
    at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.resolveTypesFor(SourceTypeBinding.java:1835)
    at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.methods(SourceTypeBinding.java:1525)
    at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.internalFaultInTypeForFieldsAndMethods(SourceTypeBinding.java:907)
    at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.faultInTypesForFieldsAndMethods(SourceTypeBinding.java:902)
    at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.faultInTypes(CompilationUnitScope.java:514)
    at org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:882)
    at org.eclipse.jdt.internal.compiler.ProcessTaskManager.run(ProcessTaskManager.java:141)
    at java.base/java.lang.Thread.run(Thread.java:844)

!ENTRY org.eclipse.core.resources 4 2 2017-10-13 13:44:53.701
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.core.resources".
!STACK 0
java.lang.NullPointerException
    at org.eclipse.jdt.internal.compiler.lookup.ModuleBinding$UnNamedModule.canAccess(ModuleBinding.java:71)
    at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage(PackageBinding.java:230)
    at org.eclipse.jdt.internal.compiler.lookup.Scope.getPackage(Scope.java:2922)
    at org.eclipse.jdt.internal.compiler.ast.QualifiedTypeReference.getTypeBinding(QualifiedTypeReference.java:108)
    at org.eclipse.jdt.internal.compiler.ast.ArrayQualifiedTypeReference.getTypeBinding(ArrayQualifiedTypeReference.java:93)
    at org.eclipse.jdt.internal.compiler.ast.TypeReference.internalResolveType(TypeReference.java:495)
    at org.eclipse.jdt.internal.compiler.ast.ArrayQualifiedTypeReference.internalResolveType(ArrayQualifiedTypeReference.java:107)
    at org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveType(TypeReference.java:586)
    at org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveType(TypeReference.java:582)
    at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.resolveTypesWithSuspendedTempErrorHandlingPolicy(SourceTypeBinding.java:1932)
    at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.resolveTypesFor(SourceTypeBinding.java:1835)
    at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.methods(SourceTypeBinding.java:1525)
    at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.internalFaultInTypeForFieldsAndMethods(SourceTypeBinding.java:907)
    at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.faultInTypesForFieldsAndMethods(SourceTypeBinding.java:902)
    at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.faultInTypes(CompilationUnitScope.java:514)
    at org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:882)
    at org.eclipse.jdt.internal.compiler.ProcessTaskManager.run(ProcessTaskManager.java:141)
    at java.base/java.lang.Thread.run(Thread.java:844)

!ENTRY org.eclipse.core.resources 4 75 2017-10-13 13:44:53.706
!MESSAGE Errors occurred during the build.
!SUBENTRY 1 org.eclipse.jdt.core 4 75 2017-10-13 13:44:53.706
!MESSAGE Errors running builder 'Java Builder' on project 'yPuL'.
!STACK 0
java.lang.NullPointerException
    at org.eclipse.jdt.internal.compiler.lookup.ModuleBinding$UnNamedModule.canAccess(ModuleBinding.java:71)
    at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage(PackageBinding.java:230)
    at org.eclipse.jdt.internal.compiler.lookup.Scope.getPackage(Scope.java:2922)
    at org.eclipse.jdt.internal.compiler.ast.QualifiedTypeReference.getTypeBinding(QualifiedTypeReference.java:108)
    at org.eclipse.jdt.internal.compiler.ast.ArrayQualifiedTypeReference.getTypeBinding(ArrayQualifiedTypeReference.java:93)
    at org.eclipse.jdt.internal.compiler.ast.TypeReference.internalResolveType(TypeReference.java:495)
    at org.eclipse.jdt.internal.compiler.ast.ArrayQualifiedTypeReference.internalResolveType(ArrayQualifiedTypeReference.java:107)
    at org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveType(TypeReference.java:586)
    at org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveType(TypeReference.java:582)
    at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.resolveTypesWithSuspendedTempErrorHandlingPolicy(SourceTypeBinding.java:1932)
    at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.resolveTypesFor(SourceTypeBinding.java:1835)
    at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.methods(SourceTypeBinding.java:1525)
    at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.internalFaultInTypeForFieldsAndMethods(SourceTypeBinding.java:907)
    at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.faultInTypesForFieldsAndMethods(SourceTypeBinding.java:902)
    at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.faultInTypes(CompilationUnitScope.java:514)
    at org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:882)
    at org.eclipse.jdt.internal.compiler.ProcessTaskManager.run(ProcessTaskManager.java:141)
    at java.base/java.lang.Thread.run(Thread.java:844)
!SESSION 2017-10-13 13:46:42.392 -----------------------------------------------
eclipse.buildId=4.7.1.M20171009-0410
java.version=9
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
Framework arguments:  -product org.eclipse.epp.package.java.product
Command-line arguments:  -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.java.product

!ENTRY org.eclipse.jface 2 0 2017-10-13 13:46:49.852
!MESSAGE Keybinding conflicts occurred.  They may interfere with normal accelerator operation.
!SUBENTRY 1 org.eclipse.jface 2 0 2017-10-13 13:46:49.852
!MESSAGE A conflict occurred for CTRL+TAB:
Binding(CTRL+TAB,
    ParameterizedCommand(Command(org.eclipse.ui.window.nextEditor,Next Editor,
        Switch to the next editor,
        Category(org.eclipse.ui.category.window,Window,null,true),
        org.eclipse.ui.internal.WorkbenchHandlerServiceHandler@5e8359da,
        ,,true),null),
    org.eclipse.ui.defaultAcceleratorConfiguration,
    org.eclipse.ui.contexts.window,,,system)
Binding(CTRL+TAB,
    ParameterizedCommand(Command(org.eclipse.ui.window.nextEditor,Next Editor,
        Switch to the next editor,
        Category(org.eclipse.ui.category.window,Window,null,true),
        org.eclipse.ui.internal.WorkbenchHandlerServiceHandler@5e8359da,
        ,,true),null),
    org.eclipse.ui.defaultAcceleratorConfiguration,
    org.eclipse.ui.contexts.window,,,system)
!SUBENTRY 1 org.eclipse.jface 2 0 2017-10-13 13:46:49.852
!MESSAGE A conflict occurred for CTRL+SHIFT+TAB:
Binding(CTRL+SHIFT+TAB,
    ParameterizedCommand(Command(org.eclipse.ui.window.previousEditor,Previous Editor,
        Switch to the previous editor,
        Category(org.eclipse.ui.category.window,Window,null,true),
        org.eclipse.ui.internal.WorkbenchHandlerServiceHandler@36b6802f,
        ,,true),null),
    org.eclipse.ui.defaultAcceleratorConfiguration,
    org.eclipse.ui.contexts.window,,,system)
Binding(CTRL+SHIFT+TAB,
    ParameterizedCommand(Command(org.eclipse.ui.window.previousEditor,Previous Editor,
        Switch to the previous editor,
        Category(org.eclipse.ui.category.window,Window,null,true),
        org.eclipse.ui.internal.WorkbenchHandlerServiceHandler@36b6802f,
        ,,true),null),
    org.eclipse.ui.defaultAcceleratorConfiguration,
    org.eclipse.ui.contexts.window,,,system)

!ENTRY com.vaadin.designer2 1 0 2017-10-13 13:47:00.882
!MESSAGE Schedule fetching all notifications

!ENTRY com.vaadin.designer2 1 0 2017-10-13 13:47:02.845
!MESSAGE Parse notifications

!ENTRY com.vaadin.designer2 1 0 2017-10-13 13:47:03.278
!MESSAGE Requesting user info (notification settings URL)

!ENTRY com.vaadin.designer2 1 0 2017-10-13 13:47:04.704
!MESSAGE HTTP Response code :200

!ENTRY org.eclipse.egit.ui 2 0 2017-10-13 13:47:06.014
!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git
user global configuration and to define the default location to store repositories: 'C:\Users\Home'. If this is
not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and
EGit might behave differently since they see different configuration options.
This warning can be switched off on the Team > Git > Confirmations and Warnings preference page.

!ENTRY org.eclipse.dltk.core 4 0 2017-10-13 13:47:07.129
!MESSAGE Unable to find any indexer

!ENTRY org.apache.ivyde.eclipse 1 0 2017-10-13 13:48:10.554
!MESSAGE starting IvyDE plugin

!ENTRY org.apache.ivyde.eclipse 1 0 2017-10-13 13:48:10.571
!MESSAGE IvyDE plugin started

!ENTRY org.eclipse.ui 2 2 2017-10-13 13:48:12.395
!MESSAGE Invalid property category path: org.eclipse.cdt.managedbuilder.ui.properties.Page_head_build (bundle: org.eclipse.cdt.ui, propertyPage: org.eclipse.cdt.managedbuilder.ui.properties.BuildLogPreferencePage)

!ENTRY org.eclipse.jface 4 2 2017-10-13 13:48:45.611
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.jface".
!STACK 0
java.lang.IllegalArgumentException
    at org.eclipse.core.resources.ProjectScope.<init>(ProjectScope.java:58)
    at com.vaadin.designer2.eclipse.preferences.VisualDesignerPreferences.getProjectPreferences(VisualDesignerPreferences.java:680)
    at com.vaadin.designer2.eclipse.preferences.VisualDesignerPreferences.getDefaultDesigner(VisualDesignerPreferences.java:245)
    at com.vaadin.designer2.eclipse.preferences.DesignerProjectPreferencePage.createDesignerSelection(DesignerProjectPreferencePage.java:179)
    at com.vaadin.designer2.eclipse.preferences.DesignerProjectPreferencePage.createContents(DesignerProjectPreferencePage.java:109)
    at org.eclipse.jface.preference.PreferencePage.createControl(PreferencePage.java:241)
    at org.eclipse.jface.preference.PreferenceDialog.createPageControl(PreferenceDialog.java:1426)
    at org.eclipse.jface.preference.PreferenceDialog.run(PreferenceDialog.java:1193)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.ui.internal.JFaceUtil.lambda[=12=](JFaceUtil.java:44)
    at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:173)
    at org.eclipse.jface.preference.PreferenceDialog.showPage(PreferenceDialog.java:1185)
    at org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.showPage(FilteredPreferenceDialog.java:591)
    at org.eclipse.jface.preference.PreferenceDialog.lambda[=12=](PreferenceDialog.java:657)
    at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
    at org.eclipse.jface.preference.PreferenceDialog.selectionChanged(PreferenceDialog.java:654)
    at org.eclipse.jface.viewers.StructuredViewer.run(StructuredViewer.java:872)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.ui.internal.JFaceUtil.lambda[=12=](JFaceUtil.java:44)
    at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:173)
    at org.eclipse.jface.viewers.StructuredViewer.firePostSelectionChanged(StructuredViewer.java:869)
    at org.eclipse.jface.viewers.StructuredViewer.handlePostSelect(StructuredViewer.java:1238)
    at org.eclipse.jface.viewers.StructuredViewer.lambda[=12=](StructuredViewer.java:1261)
    at org.eclipse.swt.events.SelectionListener.widgetSelected(SelectionListener.java:81)
    at org.eclipse.jface.util.OpenStrategy.firePostSelectionEvent(OpenStrategy.java:261)
    at org.eclipse.jface.util.OpenStrategy.access(OpenStrategy.java:256)
    at org.eclipse.jface.util.OpenStrategy.lambda(OpenStrategy.java:426)
    at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:37)
    at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182)
    at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4213)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3820)
    at org.eclipse.jface.window.Window.runEventLoop(Window.java:818)
    at org.eclipse.jface.window.Window.open(Window.java:794)
    at org.eclipse.ui.dialogs.PropertyDialogAction.run(PropertyDialogAction.java:157)
    at org.eclipse.jface.action.Action.runWithEvent(Action.java:473)
    at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:565)
    at org.eclipse.jface.action.ActionContributionItem.lambda(ActionContributionItem.java:397)
    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)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4238)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3817)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1150)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1039)
    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
    at org.eclipse.ui.internal.Workbench.lambda(Workbench.java:680)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:594)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:151)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1499)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1472)

编辑 7:

我可以 reproduce 它在另一个工作区(临时工作区)中,这是 @howlger 询问的 .classpath 文件:

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="output" path="bin"/>
</classpath>

编辑 8 - Eclipse 报告(由 询问):

https://bugs.eclipse.org/bugs/show_bug.cgi?id=526020

详情:

我尝试过的:

对于 Java 9 支持,您需要:

  1. Eclipse Oxygen.1a,可从 https://www.eclipse.org/downloads/eclipse-packages/

    获得

  2. 根据 https://wiki.eclipse.org/Configure_Eclipse_for_Java_9

    ,手动配置具有 Java 9 支持的 pre-Oxygen.1a Eclipse

选项 1 显然更简单,只要您可以控制安装和使用的 Eclipse 版本。

在 screenshot showing all installed Eclipse plug-ins 中,我看到了一些可疑的东西:您安装了两个相互冲突的功能:

  • Eclipse Java 开发工具 - 3.13.1.v20171009-0... -
  • Eclipse JDT(Java 开发工具)补丁 Java 9 支持(测试版)氧气开发流 - 1.1.1.v20170826-05... - 不好

根据我对 Eclipse 中补丁功能的理解,第二个(较旧的)功能可能会覆盖前一个(较新的)功能的插件。这意味着在更新到 Oxygen.1a(具有 Java 9 支持的官方版本)之后,您仍然有效 运行 几周前的测试版。

要仔细检查,您可以切换到 Eclipse 安装详细信息 对话框的 插件 选项卡,然后搜索 "jdt".

这个观察可以很容易地解释为什么你仍然受到在发布之前就已经修复的错误的影响。

解决方案:请尝试卸载补丁功能(并检查配置

编辑:在compiler settings中可以看到更多证据,合规性“9 (BETA)”是明确的表明您没有运行使用 JDT 的发布版本。

对我来说,通过从 Eclipse 中删除项目(并从磁盘中删除)解决了问题。然后git-克隆并创建项目,问题就解决了。

我在 Eclipse Oxygen 中遇到了同样的问题,无法显式导入 String 包。更新eclipse并删除项目中使用的用户库后问题得到解决。

不知道这是否有帮助,但我 运行 遇到了类似的问题:无法识别基本 classes。

我的困惑来自新的 Java 约定,该约定将 rt.jar(和其他)捆绑到一个无扩展名的 "modules" 文件中——改变了一个十年前的文件,class-参考攻略.

让 Eclipse 使用 JDK-10(或 JDK-9)进行编译因此需要一些东西:

  1. Window->首选项->Java->已安装的 JRE->添加...->标准 VM-->(导航到 JDK-10)
  2. Window->首选项->Java->编译器->JDK Compliance:Compiler 合规级别:10
  3. 右键项目->Build Path->Configure Build Path->JavaBuild Path->Libraries->Highlight Modulepath->Add Library->JRE System Library->Next->Select JRE 9/10 每个配置->完成

注意:除非您执行了#2,否则上面的#3 是不可能的,因为 Eclipse 不会引入 "Modulepath" 选项(在#3 中),直到您提高了编译器合规性级别(在#2 中)。

不可否认,这对大多数人来说可能是显而易见的......唉,我不是大多数人。