此编译单元不在 Java 项目的构建路径上
Posted
技术标签:
【中文标题】此编译单元不在 Java 项目的构建路径上【英文标题】:This compilation unit is not on the build path of a Java project 【发布时间】:2014-10-13 14:22:20 【问题描述】:当我尝试使用ctrl+space
时显示此错误:
This compilation unit is not on the build path of a Java project.
我看到有类似的主题,但我的工作环境是 Eclipse,我从 Git 中提取我的项目(我将项目作为一般项目导入)并且我使用 Apache Ant。谁能帮帮我?
【问题讨论】:
你把那个类的 jar 放在构建路径上:right click on project -> Properties -> Java Build Path -> Libraries
吗?
在部分构建路径上是文本“无可用操作”。所以我无法进入构建路径
尝试将项目导入为 Java project 而不是 general project。
当我这样尝试时,没有要导入的项目,这就是我作为一般项目导入的原因。对不起,如果我的英语不太好。
【参考方案1】:
由于您将该项目作为通用项目导入,它不具有 java 特性,这就是问题所在。
在工作区的 .project 文件中添加以下行并刷新。
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
【讨论】:
@loganathan 在我的文件中我有这些条目,但仍然得到Loganathan Mohanraj 的解决方案的另一种替代方案(有效地做同样的事情,但来自 GUI):
-
右键单击您的项目
转到“属性”
选择“项目性质”
点击“添加”
选择“Java”
点击“应用并关闭”
【讨论】:
【参考方案3】:如果它是一个 Maven 项目,那么有时重新导入它会有所帮助:
-
右键单击项目资源管理器中的项目并选择删除。
文件 > 导入... > Maven > 现有 Maven 项目 > 下一步 > 根目录 > 从磁盘浏览您的项目。
希望它能解决问题。
【讨论】:
作为一般建议,在重新导入之前尝试执行 Maven->Update Project,它更快并且在我的情况下解决了问题【参考方案4】:转到项目->右键单击->选择属性->项目方面->为您正在使用的JDK版本修改java版本。
【讨论】:
【参考方案5】:对于尝试上述建议后仍有问题的人: 我通过更新 maven 项目解决了这个问题。
【讨论】:
【参考方案6】:如果您的项目是作为现有的 maven 项目导入的,那么 --> 只需右键单击项目并进行 maven 更新。它解决了我的类似问题。
【讨论】:
欢迎来到 SO。尽管我们感谢您的回答,但如果它在其他答案之上提供额外的价值会更好。在这种情况下,您的答案不会提供额外的价值,因为另一个用户已经发布了该解决方案。如果之前的答案对您有帮助,那么您应该在获得足够的声望后投票支持【参考方案7】:将此添加到 .project 文件中
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>framework</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.wst.common.project.facet.core.builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.validation.validationbuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
</natures>
</projectDescription>
【讨论】:
【参考方案8】:就我而言,我有 Eclipse Maven 项目。我有同样的问题,我在这里发布了问题的详细解释和答案 Eclipse Maven - Code Completion fails "This compilation unit is not on the build path of a Java project" and "Failed to Download Index" Error
【讨论】:
【参考方案9】:我想我会添加这个作为一个潜在的原因。就我而言,我在执行文件搜索时遇到了这个问题。当我打开找到的文件时,我遇到了这个问题。
就我而言,我在 POM 项目中有一个嵌套的 Maven 模块,当我打开文件时,它打开的不是模块中的文件,而是父 POM 项目中的文件。只需从模块项目中重新打开该文件即可解决问题。
【讨论】:
以上是关于此编译单元不在 Java 项目的构建路径上的主要内容,如果未能解决你的问题,请参考以下文章