获得以下构建错误:“类型{---}无法解析。它是从所需的.class文件间接引用的”

时间:2010-08-12 03:41:35

标签: java eclipse

所以,我在Eclipse(Java)中有以下设置:

  1. 我有一个项目(让我们称之为“项目1”),它提供了一个接口(包是私有的)
  2. 我有另一个项目(“项目2”),它包含项目1中的包...此包中的类扩展了“项目1”中的包私有接口,并提供了一个很好的公共接口。
  3. 现在,我有“项目3”,它引用了“项目2”。然后,项目3使用项目2中提供的公共对象。
  4. 在项目3中从项目2调用构造函数时,我得到以下内容:

    “无法解析类型{---}。它是从所需的.class文件间接引用的”

    如果我从项目3添加对项目1的引用,一切都很好。有没有办法不用这种方式引用项目3?引用它真的没有意义。

    我正在使用Eclipse(Helios)和最新的JDK等...

2 个答案:

答案 0 :(得分:7)

这是一种“传递依赖”。您需要在类路径中使用您使用的任何类所需的所有类。因此,您需要在类路径中以某种方式获取项目1中的类 - 例如,您可以将它们打包为.jar。或者,您可以转到项目2的Build Path > Order and Export,并将项目1标记为已导出。

这里重要的一点是,项目依赖项仅仅是开发“好” - 当您独立执行程序(或将其部署到容器)时,Eclipse项目依赖项已经消失。因此,您必须确保满足您的依赖关系。

答案 1 :(得分:2)

不确定这是否是您要找的。试试这个 -

  1. 在Eclipse中,右键单击Project2,选择 Build Path - > 配置构建路径
  2. 转到订购和导出标签。它应该列出Project1。选中前面的框。
  3. 重建您的项目。
  4. 基本上,您从project2导出Project1依赖项。因此,任何将project2添加为依赖项的项目都将看到Project1,而无需显式地将其添加到类路径中。 Eclipse将透明地执行此操作。