【问题标题】:Eclipse not showing classes from an external JAR fileEclipse 不显示来自外部 JAR 文件的类
【发布时间】:2014-12-19 10:03:33
【问题描述】:

我目前正在尝试使用 Eclipse 中的 Bukkit API 开发一个插件。但是,似乎我无法从 API jar 文件中导入特定的类。如果我打开 jar 文件并查看类列表,类就在那里。但是,eclipse 不接受将这些类导入我自己的类。它显示一个错误,表示:

[classname] 无法解析为类型

我认为没有理由不接受该课程。同一包中的其他类已正确导入。其他使用 Bukkit API 的开发者没有这个问题(我特意问过的)。

图片显示错误:

EntityEnderman 类与PathfinderGoalEndermanPickupBlock 类在同一个包中。但是EntityEnderman 被正确导入,PathfinderGoalEndermanPickupBlock 不是。

这是一张图片,显示了如果我单击 Fix Project Setup 选项会发生什么:

我已经尝试手动编辑构建路径。

图片显示该类确实添加到项目的构建路径中:

为什么会发生这种情况,我该如何解决?

我使用的是 spigotmc.org 上的 1.8 版 API。我正在使用 Linux Mint 存储库 (Eclipse 3.8) 提供的最新 Eclipse。然而,同样的错误发生在 Netbeans 8 中。

【问题讨论】:

  • 也许先清理你的项目然后尝试导入可能会有所帮助
  • @vikeng21 嗯。没用。这可能更像是一个 java 问题之类的,因为它在 netbeans 和 eclipse 中都是一个问题
  • 您已经从 spigotmc.org 重新下载 API 或其他最新版本将成为解决方案?
  • @YeWin 这是最新版本,这实际上是我尝试的第一件事。
  • 您可以尝试手动编写导入,或者删除并重新导入库。或者然后完全重新创建项目。

标签: java eclipse import minecraft bukkit


【解决方案1】:

第一件事:

您确定您的项目中没有依赖冲突吗?

如果没有,[根据您的 cmets]

您可以再尝试一件事,提取 jar 并将提取的文件放入您的代码中 [我知道这是最糟糕的解决方案],但只是为了接近了解究竟出了什么问题。

此外,正如您所提到的,该类被标记为包级别的可见性,因此您不能真正在包外使用它。

【讨论】:

    【解决方案2】:

    本周我遇到了类似的问题:jar 显示在 Eclipse 中,我可以“看到”其中的类,但无法在我的代码中导入类,与您类似的错误。

    原来我的本地 maven repo 中的 jar 已损坏:我无法打开它(使用 winzip)。解决这个问题就像在我的本地仓库中删除 jar 的版本目录一样简单,然后再次构建应用程序。这一次,jar 被正确下载,我可以使用其中的类。

    【讨论】:

      猜你喜欢
      • 2018-11-15
      • 2021-03-20
      • 1970-01-01
      • 2012-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-11
      相关资源
      最近更新 更多