这个问题普遍存在,解决方案有两种:
第一种方法: 打开项目的classpath文件:如下
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" path="src/main/java"/>
<classpathentry kind="src" path="src/main/resources"/>
<classpathentry kind="src" output="target/test-classes" path="src/test/resources"/>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
<attributes>
<attribute name="owner.project.facets" value="java"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>
会出现path属性为:src/main/java的classpathentry节点,这时删除我们需要新建的的节点就可以,比如 <classpathentry kind="src" path="src/main/java"/>。在Java Resources下重新建立src/main/java文件夹,就不会出现问题了。
第二种方法:这是最便利的一种。在项目上右键选择properties,然后点击java build path,在Librarys下,编辑JRE System Library,选择workspace default jre就可以了。
第三种方法:用Navigator视图,直接在src/main目录下建立java目录。
分析原因: 项目属性->Java Build Path->Source,会看到src/main/java, src/test/java已存在,但是Missing。所以只需要创建目录,Source Floder就出现了。
参考博客