2014-12-19 69 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被正確下載了,我能夠使用它的類。