Eclipse 下出现 This compilation unit is not on the build path of a Java Project 解决

时间:2021-09-23 11:04:02

    今天再使用CVS的时候,小组成员都碰见"This compilation unit is not on the build path of a Java Project"这个错误。

    这个错误是在check out工程吼,使用"."操作来自动不全代码的时候发生的。 

    经过一番baidu + google 也没有找出解决方案。 不过已经把问题锁定再Eclipse工程描述文件上(工程根目录下的.project文件)。

    于是我重新创建了2两个工程(假定为工程A, 工程B), 在A工程中添加一个类文件. B工程保持不变。然后将B工程下的".project"文件copy到A工程下,覆盖掉A工程的".project"文件。

    此时在A工程中编写代码的时候就会碰见"This compilation unit is not on the build path of a Java Project"这个错误。

    但是分别打开两个工程的.project文件没有发现有什么不同。但是在Eclipse中会出错。

  

    好了,到现在终于找到了问题的原因了。 但是该如何解决这个问题呢。

 

下面介绍一下我的解决方法:

    1. 删除本机上的工程[删除前先确定所有文件已经提交到了代码服务器上].

    2. 从CVS服务器导入工程: File -> Import project -> 选择CVS下的Project from CVS -> Next ....(后面根据向导提示导入工程就行了)。

    3. ok ~~ 打开刚才导入的工程,问题解决了!!! ^_^...

 

 

高兴之余,以后要如何避免此错误的发生呢?

    CVS服务器是架设在我的电脑上的,我对CVS中部署的工程细细的检查了一下,发现在工程的目录下有一个.project文件。

    此时终于知道问题的元凶是谁了,开发人员由于check out了错误的.project文件导致了这个错误。

    那么避免该错误的方法就显而易见了,不去checkout服务器上的.project文件(未经测试,只是个人推断,具体问题需要具体分析)。


 原因可能二:

   使用maven 管理项目时候  用eclipse 导入后  项目的目录如下图 :

  Eclipse 下出现  This compilation unit is not on the build path of a Java Project  解决

 从图左边的项目目录结构可以看出minerva-protals 是下面这几个项目的父模块名称  如果在这个地方打开某个子模块src下面的java类进行编辑是就会出现上面的错误 原因 暂且不明。

   我们在用shirt+alt+s+r 打开资源的时候会出现好多java类由于这里出现的java类中也包含了父模块中某个子模块src下的类 所以导致我们进错了模块 而出现问题   我们在找java类的时候应该用   shift+alt+t  来找 这里面显示的都是能够编译的ava类。