代码之家  ›  专栏  ›  技术社区  ›  DigitalZebra

获取以下生成错误:“无法解析类型---”。它是从必需的.class文件间接引用的“

  •  6
  • DigitalZebra  · 技术社区  · 16 年前

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

    1. 我有一个项目(我们称之为“项目1”),它提供了一个接口(包私有)
    2. 我有另一个项目(“项目2”),其中包含来自项目1的包…这个包中的类扩展了“项目1”中的包私有接口,并提供了一个良好的公共接口。
    3. 现在,我有了“项目3”,它引用了“项目2”。然后,项目3使用项目2中提供的公共对象。

    在项目3中从项目2调用构造函数时,我得到以下信息:

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

    如果我在项目3中添加对项目1的引用,那么一切都很好。但是,有没有一种方法不必以这种方式引用项目3?引用它确实没有意义。

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

    2 回复  |  直到 16 年前
        1
  •  7
  •   Bozho    16 年前

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

    这里重要的一点是,项目依赖性仅仅是一个开发“好东西”——当您独立地执行程序(或将其部署到容器中)时,Eclipse项目依赖性就不复存在了。因此,您必须确保满足您的依赖关系。

        2
  •  2
  •   samitgaur    16 年前

    不确定这是不是你要找的。试试这个——

    1. 在Eclipse中,右键单击Project2,选择 构建路径 -gt; 配置生成路径
    2. 去 订购和出口 标签。它应该列出项目1。选中它前面的框。
    3. 重建项目。

    基本上,您要从Project2导出Project1依赖项。因此,任何将Project2作为依赖项添加的项目也将看到Project1,而不必显式地将其添加到类路径。Eclipse将透明地做到这一点。