簡體   English   中英

Eclipse/Java 代碼完成不起作用

[英]Eclipse/Java code completion not working

我已經下載、解壓並安裝了 Eclipse 3.4.2 和一些插件(值得注意的是,EPIC、Clearcase、QuantumDB、MisterQ)。

現在我發現當我編輯 Java 項目時,代碼補全不起作用。 如果我輸入String. 並按ctrl + space彈出窗口顯示“無默認建議”,底部的狀態欄顯示“無可用完成”。

有任何想法嗎?

嘗試恢復Windows > Preferences > Java > Editor > Content Assist > Advanced ”中的默認選項

您在此首選項屏幕中看到的數據類型示例,但不一定是您當前擁有的數據。

eclipse 內容輔助設置

(來自這篇博文中的Vadim “Eclipse (Mylyn) 中的內容輔助重復”
如果有重復的 Mylyn 條目,請取消選中名稱中不包含“ (Mylyn) ”的重復條目)

Eclipse 幫助頁面定義了要恢復的默認列表:

選擇“默認”內容輔助列表中包含的提案種類:

  • 其他 Java 提案,
  • SWT 模板提案,
  • 模板提案,
  • 類型提案

我在這里添加一個答案,以防其他人在谷歌上找到這個。 相同的症狀; 不同的問題。 對我來說,類型緩存已經損壞。

來自http://mschrag.blogspot.co.nz/2009/01/open-type-cant-find-your-class.html

  • 退出 Eclipse
  • 轉到 workspace/.metadata/.plugins/org.eclipse.jdt.core
  • 刪除 *.index 和 savedIndexNames.txt
  • 重新啟動 Eclipse 並搜索Ctrl + T以查找有問題的類型。 索引將被重建。

如果有人來到這里並想要激活自動完成功能,請轉到

Preferences -> Java -> Editor -> Content Assist.

然后在Auto Activation部分填寫Auto activation triggers for Java:

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ._

在此處輸入圖片說明

對於那些運行 Xfce + 並激活 IBus 插件的用戶,可能存在鍵盤快捷鍵沖突。

在我的博客上查看更多信息: http : //peter-butkovic.blogspot.de/2013/05/keyboard-shortcut-ctrlspace-caught-in.html

更新

正如@nhahtdh 的評論所建議的那樣,添加更多信息以直接回答:Xfce 中的 IBus 插件默認使用Ctrl + Space快捷鍵進行鍵盤布局切換。 要更改它,請轉到:選項並將其更改為您喜歡的任何其他內容。

檢查您的項目的庫。 可能是您包含了兩個這樣的 jar 文件,其中相同的類可用,或者說代碼中的一個類可以在兩個 jar 文件中引用。 在這種情況下,eclipse 也會停止輔助代碼,因為它完全被混淆了。

檢查這一點的更好方法是轉到輔助不起作用的文件並在那里注釋所有導入,而不是一一添加導入並檢查每個導入是否代碼輔助正常工作。您可以輕松找到具有重復引用的類.

這些都不適合我。

我只在一次特定的課程中遇到過這個問題。 最終對我有用的是刪除有問題的類並重新創建它。 問題解決了...神秘不是那么多!

如果您安裝了 Google Toolbar for IE,可能會遇到同樣的問題。 因為,工具欄捕獲了快捷鍵 ctrl +Space

我有這個問題,喜歡@Marc,只有在一個特定的班級。 我發現我需要指定 Open With = Java Editor。 作為 Eclipse 新手,我什至沒有意識到我只是在使用純文本編輯器。

在包資源管理器中,右鍵單擊該文件並選擇“打開方式”。

另一個對我有用的解決方案是轉到 Java--> Appearence --> Type Filters 並禁用所有在此處輸入圖片說明

我遇到了這個問題,並花了幾個小時試圖找出問題所在。 嘗試按照上面不同答案中提到的步驟進行操作,我找到的解決方案與 Mona 建議的在同一行,但略有不同。 試圖作為評論添加到 Mona 的答案,但沒有可用的選項。 我的日食的問題是,類路徑不知何故被破壞,所有的 jars 和依賴項目都丟失了。 從存儲庫中獲取最新的 .classpath 后,它工作正常。

我也面臨這個問題,但它以不同的方式解決。 我遵循的步驟可能對其他人有幫助。

  1. 右鍵單擊項目(您正在處理的項目)
  2. 轉到“屬性”>“Java 構建路徑”>“JRE 系統庫”
  3. 點擊右側的編輯...
  4. 選擇 JRE 7

一旦您檢查了配置並且完成仍然無法正常工作:

  • 確保您擁有正確的目錄結構。

您看到文件旁邊的正確圖標了嗎?:

在此處輸入圖片說明

它將告訴您 Eclipse 將如何處理該文件:

在此處輸入圖片說明

我發布這個答案是因為我有關於 Maven webapp artifact 的故事。 默認情況下,Maven-WebApp 不會為源文件創建文件夾,我將我的 Java 放入資源中,想了 5 分鍾發生了什么...... :)

檢查您是否沒有過濾掉 Window > Preferences > Java > Appearance > Type Filters 中的許多選項

此列表中的項目不會出現在快速修復中、自動完成或出現在其他各種位置,如“打開類型”對話框。

也許這可以幫助遇到相同問題的其他人。

我的設置:由其他人制作的舊 Gradle 項目(Gradle 2.12 版),使用 Gradle 導入向導導入 STS(Eclipse Oxygen.2 (4.7.2))。

代碼完成也不起作用(我在 Java 文件中仍然有空的 Js),但至少我通過執行以下操作使代碼完成工作:

  • 右鍵單擊項目文件夾 > Properties > Gradle > Configure Workspace Settings > Java > Editor > Content Assist > Advanced
  • 選中“上方窗口中的 Java 提案”。
  • 2x 申請並關閉

就我而言,Intellisense 僅在一個項目的幾個課程中消失了。 事實證明,這是因為構建路徑上缺少一個庫(盡管它以前工作過)。

所以一定要檢查 Eclipse 中的所有錯誤或問題,並嘗試查找是否可能缺少某個庫

我遇到了這個問題,結果是我用文本編輯器而不是 Java 編輯器打開文件。

我想評論https://stackoverflow.com/users/607470/elroy-flynn響應,但添加評論僅在我獲得 50 分后才有效? 不確定 WTF 是...

謝謝,湯姆

對於使用最新 3-19 eclipse 構建的用戶:

Oxygen升級到3-19 eclipse 版本時,這只是發生在我身上,所以我認為自動完成功能在升級過程中沒有正確遷移。

對我有用的唯一解決方案是創建一個新的 eclipse 工作區,並將項目導入其中。 這可能需要幾分鍾,但值得 - 與在其他解決方案上花費的時間相比......

自從升級到 Eclipse 2019-09 以來,我遇到了這個問題。 根據上面的一些建議,這對我有用。

我不得不去 Eclipse -> Preferences -> Java -> Editor -> Content Assist -> Advanced。

Java 編輯器/內容輔助高級

我發現如果我打開任何鍵綁定建議,Java Non-Type、Java、Java(Task-Focused)或 Java Type 建議,那么我就可以使用自動完成。 如果我將它們全部打開,那么不僅自動完成工作,而且我列出了重復的方法。 我在猜測,但我可能會使用 Java 類型建議。 對這四種類型的不同之處的任何澄清將不勝感激。

對我來說,問題是同一庫的多個版本之間存在沖突。 Eclipse 助手使用的是比 maven 舊的版本。

我不得不轉到 .m2 目錄並刪除不需要的 lib 版本 + 重新啟動 eclipse。

我在 Eclipse Neon 上編輯不屬於項目目錄的文件時遇到問題。 當我將同一個文件復制到項目根目錄,甚至沒有復制到 src 目錄時,完成開始工作。

當文件從不同的目錄打開時,只有 JRE 的補全工作。 例如: java. 完成,但junit. 才不是。

以防萬一有人到了無濟於事的絕望點......我們碰巧內容輔助以某種方式縮小了所以沒有顯示任何建議,只能看到“按Ctrl +空格鍵用於非Java......”。 因此,只需拖動內容輔助的一角即可放大彈出窗口。

我知道,尷尬。 希望能幫助到你。

注意:這是一個使用 Eclipse Oxygen 的帶有 Xfce4 的 Ubuntu 服務器。

如果您在枚舉中遇到這種情況,或者在使用匿名類初始化數組時遇到這種情況,那么這是 Eclipse 中的一個已知錯誤。 請參閱Eclipse 內容幫助在枚舉常量參數列表中不起作用

在 Java Spring Boot 項目上運行 STS,這對我有用:

在此處輸入圖片說明

對於 2021 年 9 月的我來說,這是一個奇怪的 Eclipse 錯誤。 我的班級注釋中有一個多行字符串。 這導致在嘗試編寫完整代碼時該特定類失敗(即使該類編譯得很好)。

我們可以根據需要更改設置。

假設我們希望將java 提案作為最高優先級,我們需要進行如下更改。

Windows >首選項> Java >編輯器>內容輔助>高級

選擇Java 提議並單擊向上按鈕

在此處輸入圖片說明

暫無
暫無

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

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