簡體   English   中英

Eclipse 錯誤:“導入 XXX 無法解析”

[英]Eclipse error: "The import XXX cannot be resolved"

我正在嘗試使用 Eclipse 中的 Hibernate。我正在創建一個新的簡單項目,並且我也通過 CVS 下載了一個同事項目。 兩者都不起作用,而在我同事的 Eclipse 上卻可以。 問題是,對於 Hibernate class 的每次導入,Eclipse 表示:

The import org.hibernate cannot be resolved

但是Hibernate jars都在構建路徑中,即:

antlr-2.7.6.jar
cglib-2.2.jar
commons-collections-3.1.jar
dom4j-1.6.1.jar
hibernate3.jar
hibernate-jpa-2.0-api-1.0.0.Final.jar
javassist-3.12.0.GA.jar
jta-1.1.jar
slf4j-api-1.6.1.jar

嘗試通過轉到以下菜單項來清理您的項目:

Project > Clean...

如果這不起作用,請嘗試從構建路徑中刪除 jar 並再次添加它們。

顯然,有些情況下存在有效問題,但是 Eclipse 有時會無緣無故地拋出此錯誤。 這仍然是(在 v 2020-09 中)一個舊的(2010 年)Eclipse 錯誤,可以通過對項目設置進行微不足道的更改來解決。

touch .classpath

解決問題,或轉到項目 > 屬性 > Java 構建路徑 > 訂購和導出 > 進行無意義的訂單更改 > 應用。 改回順序不會回歸問題。

清理項目。 並仔細檢查 jars 是否真的在構建路徑上(沒有錯誤)。 還要確保“問題”視圖中沒有任何內容。

如果是 Maven 項目,也點擊Maven >> Update project... (F5)

更新 Maven 項目

我發現了問題。 它是 hibernate3.jar。 我不知道為什么它沒有從 .zip 中很好地提取出來,可能是損壞的 檢查 jar 是否損壞的一個好方法是在 Eclipse 的“項目資源管理器”中瀏覽它們的樹結構:如果您無法展開 jar 節點,則它可能已損壞。 我已經看到,當您它們拖放到“項目資源管理器”時,經常會出現損壞的包。 也許在操作系統環境中移動和復制它們會更好! 謝謝你們。

我通過刪除項目(不要在磁盤上刪除)並再次導入來解決它。

  1. 清理項目項目->清理...
  2. 右鍵單擊項目->BuildPath->Configure BuildPath->Libraries 選項卡->

雙擊 JRE SYSTEM LIBRARY - > 然后選擇備用 JRE

這已經解決了我的問題。

1)清理項目項目->清理...

2) 右鍵單擊​​項目 -> BuildPath -> 配置 BuildPath -> 庫選項卡 -> 雙擊 JRE SYSTEM LIBRARY -> 然后選擇備用 JRE

3)點擊保存

4)再次在項目資源管理器中轉到您的項目並右鍵單擊項目 -> BuildPath -> 配置 BuildPath -> 庫選項卡 -> 雙擊 JRE SYSTEM LIBRARY -> 這次選擇“執行環境”

5) 申請

我遇到了問題,類路徑以某種方式被破壞了。

所以在 Package explorer > Plug-in tools > Update classpath... 中的項目上右鍵單擊...為我做了

我通過更新項目解決了這個問題:右鍵單擊 Maven 項目,選擇 Maven -> 更新項目 -> 選擇復選框強制更新快照/發布。

嘗試在項目的構建路徑中添加 JRE 系統庫。

和我一起,它幫助改變了編譯器合規性級別 由於未知原因,它被設置為 1.6,我將其更改為 1.8。

在項目級別右鍵單擊項目 > 屬性 > Java 編譯器,而在 Eclipse 中單擊菜單窗口 > 首選項 > Java > 編譯器。

我嘗試了上面的所有答案,但沒有運氣。 就我而言,有一個生成的 build/classes 文件夾,其中包含一些額外的“.class”文件。 我最終轉到包資源管理器,右鍵單擊該項目並選擇“刷新”選項,這使得 build/classes 文件夾再次可用,解決了該問題。

就我而言,它是 Maven 存儲庫中的一個損壞的 jar。 刪除存儲庫中的 jar 文件,讓 Maven 再次下載它們。

當我從命令行運行mvn clean install ,它運行良好,但 Eclipse 仍然無法編譯代碼。 當我在 Eclipse 中運行maven install ,我看到 Maven 抱怨 jar 文件錯誤。 所以我刪除了它並再次運行maven install 問題消失了。

為了在您的 .m2 目錄中下載不存在的 jar 文件,您應該為您的項目 pom.xml 運行mvn clean install命令。 然后您應該通過單擊Alt+F5更新項目依賴項。 這對我有用!

刪除“module-info.java”確實為我解決了問題!

該文件是自動生成的,並且確實出現在我的層次結構中...

我遇到了同樣的問題,因為我添加了一個我創建的 jar,我在其中設置了除類的基目錄之外的打包基目錄。 因此,類例如java.util.List必須作為util.List導入,盡管建議的導入是第一個。

檢查引用庫下導入的jar包是否正確導入

我不明白這背后的原因,但這解決了我面臨的同樣問題。 在執行上述解決方案中提到的步驟之前,您可能需要這些步驟(清理所有項目並自動構建)。

右鍵單擊項目 -> 屬性 -> 項目構面 -> 選擇 Java -> 應用

每當您遇到此問題時,只需轉到“項目”>“清理”,然后選擇“清理所有項目”。 它應該得到解決,否則嘗試刪除這些 jars 並重新添加它們。 最后一件事是嘗試重新啟動 Eclipse。

pom.xml

如果是 Maven 項目,則轉到 pom.xml 並刪除所有依賴項 jar。 保存。 項目將自動構建。

然后再次添加依賴罐子(你可以做Ctrl + Z )。 保存。 項目將自動構建,您不會看到該錯誤。

Eclipse IDE 解決方案

在我的情況下,我通過更正這兩個可能損壞的文件之一來修復它: .classpath.project

要修復任何損壞的文件,您可以從另一個項目中復制,該項目同時包含.project文件或.classpath文件並且沒有錯誤。 但一定不要添加不會使用的額外設置。

刪除 POM.XML 中的依賴項並下載 jar 並將其添加到 buildpath 中。

有時 -> maven 不會反映新的變化,這可能會導致這種問題

請嘗試檢查所有庫是否都到位。 我遇到過同樣的問題。 但是我通過移動 lib 文件夾並在構建路徑中再次添加所有 jar 來解決它。

我遇到了同樣的問題。 我下載了 jar 並將其添加到構建路徑中,但我沒有注意到擴展名是 .jar.zip。 我再次將其轉換為 .jar 並添加到構建路徑中。

它解決了我的問題。 這是一個非常愚蠢的錯誤,但我在這里寫了它,以防它可以幫助某人。

如果您正在使用 Maven 並遇到此問題,請檢查存儲庫服務器(例如 nexus 服務器),如果存在工件。 有時,他們可以更改工件的名稱,而您嘗試使用舊名稱獲取工件。

通過鏈接源解決。 從資源管理器中右鍵單擊項目,選擇屬性,選擇 Java 構建路徑,從選項卡中選擇源,按下按鈕“LinkSource”。 並指定要添加到項目的文件夾。

我也無法導入。 我花了幾個小時才弄清楚,我嘗試使用 1.6 綁定的庫/jar,而我正在嘗試為 1.8 進行編譯。 當我將我的項目也切換為使用 1.6 時,導入問題就消失了。 所有的錯誤信息都指向錯誤的方向。 就在源代碼中,我發現了一些針對 1.6 版本的限制。 並且:例如 .settings 和 .classpath (File-Search) -> org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 可以在此類問題上給出提示。

我遇到了同樣的問題,我通過刪除一個 jar 來解決它,該 jar 在我的 pom.xml 上的兩個不同依賴項中添加了兩次。 刪除依賴項之一解決了這個問題。

對我來說,似乎我添加了錯誤級別的庫文件夾。 我下載了Jericho HTML Parser ,將它解壓到eclipse-workspace/libraries/jericho-html-3.4/

然后將其添加為外部庫文件夾時,技巧是導航到該文件夾​​,突出顯示“類”文件夾並按打開。 我之前曾嘗試添加父文件夾和不同級別的子文件夾,但沒有成功。

這幾乎解釋here ,它說

您還可以添加一個類文件夾,該目錄包含不在 JAR 中的 Java 類文件。

我在這里學到了兩個教訓,如果這些是題外話,我深表歉意:

  1. 仔細閱讀說明 - 一字一句!

  2. 不要放棄 - 這是我第一次添加庫,我花了大約兩個小時才添加它。

[代碼點火器框架] [導入庫]

嘗試在 Project Explorer 視圖中右鍵單擊該項目,選擇refresh 對於我的情況,所有錯誤標記都令人驚訝地消失了。


我不擅長 Eclipse。 我開始使用 Android Studio 開發 Android。 但是,看到紅色錯誤標記一直徘徊而整個項目仍然正常工作,這很煩人。 當我使用 composer 導入這樣的庫時發生在我身上:

require __DIR__ . '/../../vendor/autoload.php';

use \Firebase\JWT\JWT;

就我而言,我導入了一個在同學筆記本電腦上編寫的項目,問題是他使用的是 Java 11 而我使用的是 Java 8,因此該項目的構建路徑中包含 JDK 11,所以我什至無法導入 java 類(日期、集合等)。 所以我為解決這個問題所做的就是刪除JDK11的路徑,添加我的JDK8路徑。

腳步:

  1. 單擊菜單欄上的項目,然后單擊屬性
  2. 選擇庫選項卡
  3. 單擊類路徑,然后單擊側邊欄中的添加庫
  4. 選擇相應的庫進行添加(刪除舊的)

對於Eclim + Maven用戶:

  1. 打開項目的.classpath文件: vim .classpath
  2. vim ,使用:MvnRepo來初始化 Maven Eclim 插件。 這將設置M2_REPO 請注意,此步驟 * 必須在編輯.classpath文件時執行(因此是步驟 1)。
  3. 使用:Mvn dependency:resolve更新依賴項列表。
  4. 使用:Mvn eclipse:eclipse更新.classpath
  5. 保存並退出.classpath:wq
  6. 重新啟動eclim似乎有幫助。

請注意,步驟 3 和 4 可以在vim之外完成,分別使用mvn dependency:resolvemvn eclipse:eclipse

由於該插件在 Eclim 的文檔中被稱為 Eclipse 插件,我認為此過程也適用於 Eclipse 用戶。

或者在你的 module-info.java 中,添加:

requires org.hibernate;

我有一個類似的問題,這是我在谷歌上搜索答案時出現的第一個線程。

我必須做的是在project > properties ,轉到Java Build Path > Libraries > Modulepath並將JRE System Library從(在我的情況下) JavaSE-14 (unbound)更改為JavaSE-11 (Java SE 11.0.2 [11.0.2])

我認為 JavaSE-14 可能尚未安裝或其他原因,因為它說(未綁定)但其余版本在括號內有更長的 Java 版本名稱和編號

我希望它可以幫助某人。

首先在 maven 中更新項目,並在它為我工作的類路徑中的所需依賴項中檢查 Jar/depdency

我在未解決的導入語句上遇到了類似的問題。 我嘗試了本次討論中提供的許多解決方案,但沒有一個解決了我的問題。 我最終弄清楚了我的案例中發生了什么,所以我將分享我的發現。

如果您在構建路徑中添加一個 jar 並且該 jar 是一個 OSGI 包(一個帶有包含 OSGI 標頭語句的 MANIFEST.MF 文件的 jar),則在您滿足所有 Import-Packages 要求之前,您不能從該 jar 導入任何包。 發生這種情況的唯一線索是您無法從該包中導入包,即使看起來該庫已正確包含在您的項目構建路徑中。 編譯時仍然需要滿足可選的導入包。 允許在運行時缺少可選包。 好吧,如果您在 OSGI 框架中使用捆綁包,那肯定是真的,如果您不在 OSGI 框架中使用捆綁包,我不確定這是否是真的。

所以通讀這個答案,我沒有找到適用於使用 Visual Studio Code(VS 代碼)的 Java 開發人員的解決方案。

我能夠在 VSCode 中解決這個問題,但輸入crtl-shift-p並輸入clean 當我這樣做時,我運行了“Java:Clean Java Language Sever Workspace”命令。 這解決了我的依賴問題。

也嘗試在你的包名之前添加main.java

舊包名稱: com.stackoverflow.help

試試: main.java.com.stackoverflow.help

我的問題是 vscode 在舊的 Python 安裝上運行

  1. 手動找到並刪除舊安裝

  2. 重新安裝所需的進口

在此之后,誤報導入錯誤消失了

如果在 Windows 上,請使用管理權限運行 eclipse。 在我的情況下,導入認為它是合法的未能解決並且沒有任何幫助,然后意識到輸出文件夾權限是只讀的,因此在以管理權限運行后,每個導入語句都有效。

右鍵單擊src->new package :重命名要導入的包並使用包類名稱創建一個新類。
例如,如果導入 net.proteanit.sql.DbUtils; 顯示導入錯誤

然后創建一個名為net.proteanit.sql的新包並創建類 DbUtils;

package net.proteanit.sql;
public class DbUtils {

}

就我而言,我已將 eclipse 版本從 2021-12 升級到 2022-09。 我的電腦有 2 個 JDK 1.8 和 17,其中 eclipse Java 編譯器占用了 17 個。

此外,已安裝的 JRE 未使用 1.8 JDK bin 文件夾。 因此需要為其添加 JRE 定義。 這些設置可能會被遺漏並且可能會帶來一些麻煩。

解決方案:

  1. 在 Preference-->JAVA-->Compiler 中檢查編譯器
  2. 安裝的 JRE 應該指向您要使用的 JDK
  3. 檢查各自的項目構建路徑 JDK/JRE 設置

Eclipse 中首選項菜單的圖像

我使用Maven存儲庫中的JPA JAR解決了此問題,並將其添加到項目的構建路徑中。

在類路徑而不是模塊路徑中添加 jar 文件。 為我工作。

為了我,

項目--->源--->格式

解決了問題

如果您正在eclipse中開發插件,並且正在使用目標平台(在我的情況下),則需要確保從Window-> Preferences-> Plug-in Development-> Target Platform檢查目標平台的配置,並進行確保已檢查並配置了目標平台。 希望這可以幫助。

檢查您的POM文件是否在所有模塊中都更新為相同版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM