这可能是 Eclipse 的特性之一及其对构建路径的处理,尽管到目前为止测试了各种变通方法,但仍无法修复。
该问题与几个项目的工作区有关,每个项目都编译成自己的 JAR。
通过将相关的项目添加到构建路径(不Maven
使用或使用其他外部工具或插件)来解决项目之间的依赖关系,通过
Project -> Properties -> Java Build Path -> Projects
在所有这些项目中,有几个(比如,com.example.p1
和com.example.p2
)拒绝承认第三个(也是简单的)(比如,com.example.p3
),而所有其他项目都这样做。因此,虽然 P3 已添加到构建路径中,但 P3 中的所有相关类都已正确导入,并且每个此类的源代码都可以通过点击来访问F3
,Eclipse 一直在抱怨
The import com.example.p3 cannot be resolved
和
SomeClass cannot be resolved to a type
com.example.p3.SomeClass
P3课程之一在哪里。
如果我将其编译后的 JAR 放在构建路径中,而不是 P3 项目,问题就会消失。但是,P3 中的代码经常更改,并且不断编译和刷新工作区以便获取更改是浪费时间,更不用说这不应该在 IDE 中发生(而且对于其他使用P3,在同一个 Eclipse 工作区中)。
我试过了:
删除并再次添加 P1、P2、P3
清理并重新编译所有内容
检查是否有任何其他项目加载了 P3 JAR
将 P3 放在 Eclipse 构建路径“Order and Export”列表的顶部
使用 Eclipse 的“修复项目设置”建议(将鼠标悬停在红色下划线错误编译行上时可用)。实际上,此选项提供了将 P3 或其 JAR 添加到构建路径,但如果添加了 P3,问题会再次出现。
.classpath
使用 P3 源(不是 JAR)时,P1 和 P2 中的文件与所有其他项目相同,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="classes" path="src"/>
<classpathentry kind="var" path="JRE_LIB" sourcepath="JRE_SRC"/>
<classpathentry kind="lib" path="<JAR_path/JAR_file>"/>
... // Multiple other JAR files
<classpathentry combineaccessrules="false" kind="src" path="/p3/">
<classpathentry kind="output" path="bin"/>
</classpath>
对于工作区中的所有项目,这些.project
文件也是相同的。
有任何想法吗?