我目前正在尝试使用Eclipse中的Bukkit API开发插件。但是,似乎我无法从API jar文件中导入特定的类。如果我打开jar文件并查看类列表,那么这些类就在那里。但是,eclipse不会接受将这些类导入到我自己的类中。它显示错误表示:
[classname]无法解析为类型
我认为没有理由不接受这门课程。正确导入同一包中的其他类。使用Bukkit API的其他开发人员没有这个问题(我特别要求)。
图片显示错误:
班级EntityEnderman
与班级PathfinderGoalEndermanPickupBlock
位于同一个包中。但EntityEnderman
已正确导入,PathfinderGoalEndermanPickupBlock
未正确导入。
这是一张图片,显示了如果点击修复项目设置选项会发生什么:
我已尝试手动编辑构建路径。
图片显示该类实际上已添加到项目的构建路径中的证据:
为什么会发生这种情况,我该如何解决?
我正在使用spigotmc.org上的1.8版API。我正在使用Linux Mint存储库(Eclipse 3.8)中提供的最新eclipse。但是,在Netbeans 8中也会发生同样的错误。
答案 0 :(得分:2)
首先要做的事情:
您确定,项目中没有依赖冲突吗?
如果没有,[根据你的评论]
你可以尝试另外一件事,提取jar并将提取的文件放在你的代码中[我知道这是最糟糕的解决方案]但只是为了接近知道究竟是什么错误。
另外,正如您所提到的那样,类被标记为包级别可见性,因此您无法在包外部真正使用它。
答案 1 :(得分:0)
本周我有类似的问题:jar在Eclipse中显示,我可以"看到"其中的类,但不能在我的代码中导入类,与您类似的错误。
原来我的本地maven回购中的jar已经损坏:我无法打开它(使用winzip)。解决这个问题就像删除我本地仓库中的jar版本目录一样简单,并再次构建应用程序。这次,jar被正确下载,我可以使用它的类。