2014-12-19 67 views
1

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

[classname] cannot be resolved to a type

我看不出为什么该类不应该被接受。相同包中的其他类可以正确导入。其他使用Bukkit API的开发人员没有这个问题(我特别提到)。

图片表示错误:

EntityEnderman是在同一个包作为类PathfinderGoalEndermanPickupBlock。但EntityEnderman正确导入,PathfinderGoalEndermanPickupBlock不是。

这里的显示,如果我点击修复项目设置选项会发生什么图片:

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

图片展示证明了类真正加入到项目的构建路径:

为什么会发生这种事,我怎么能解决这个问题?

我使用的是在spigotmc.org上找到的API的1.8版本。我正在使用Linux Mint存储库(Eclipse 3.8)中提供的最新eclipse。但是,在Netbeans 8中也会出现同样的错误。

+0

也许先清理你的项目,然后尝试导入可能会帮助 – vikeng21 2014-12-19 10:09:16

+0

@ vikeng21嗯。没有工作。这可能是一个java问题或更多的东西,因为它是一个问题在netbeans和eclipse – DonyorM 2014-12-19 10:11:15

+0

你已经从spigotmc.org再次下载API或另一个最新版本将解决? – 2014-12-19 10:16:58

回答

2

第一件事第一件事:

你确定,你的项目没有依赖冲突吗?

如果没有,[按您的评论]

您可以尝试一两件事,提取罐,把你的代码中提取的文件[我知道这是做最坏的解决方案],但贪图接近知道究竟是什么错误。

另外,正如你所提到的那样,这个类被标记为包级可见性,所以你不能真的在包外使用它。

0

本周我有类似的问题:jar在Eclipse中显示,我可以“看到”它的类,但不可能在我的代码中导入类,与您类似的错误。

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