2010-03-05 91 views
30

我注意到自動完成功能在Eclipse的某些java文件中不起作用。 此外,自動完成功能無效的文件顯示一個空心的「J」作爲Java文件的圖標。自動完成正在工作的文件,圖標的Java文件是一個填充「J」Eclipse自動完成功能在某些Java文件中不起作用

我想知道是否有人可以指出什麼出了問題的所有突變,爲什麼圖標的變化以及爲什麼自動完成和語法高亮被打開 - 在帶有空心「J」圖標的文件中關閉?

謝謝。

更新

基本上,我在做什麼VonC曾建議,但Eclipse並沒有刷新,這就是我的想法是VonC的建議是行不通的,做了刷新後,問題解決了。

回答

11

在這下面的圖片,MyClass.java具有空心J,因爲它明確地從源頭上排除建:

alt text

你能去該項目的性質, 「Java Build Path」部分,「Source」選項卡並查看是否設置了一些排除過濾器?
這是通常的情況下定義:

**/Test*.java 

首先構建任何單元測試類(排除當你有一大套的來源,不希望被自動完成過程中與測試類呈現,或者不希望在源搜索期間考慮它們)。

+0

由於某些原因,Java Build Path完全是空的,導致了這個問題。我包含了缺少的JAR文件,但現在我需要將所有包都包含回該項目。唯一的問題是,我得到錯誤消息「聲明的包與預期的包不同」 – 2010-03-08 15:23:52

+0

@m_a_khan:確保你選擇了正確的src目錄,因爲如果你不這樣做,你的包將不會匹配目錄。請參閱http://www.coderanch.com/t/453731/IDEs-Version-Control-other-tools/Eclipse-error-Declared-package-does或http://forums.sun.com/thread.jspa?threadID = 5376951或http://www.eclipsezone.com/eclipse/forums/t73687.html – VonC 2010-03-08 17:47:57

10

那些空心的J不是項目構建路徑的一部分,所以它們不能參與正常的構建過程,因此不會爲這些文件啓用自動完成功能(以及其他Java編輯器特徵!)。您必須使用項目屬性的「源路徑」部分將包含要構建的Java文件的文件夾添加到構建路徑。這可以通過右鍵單擊項目導航器/包資源管理器中的項目並轉到屬性來訪問。詳情請參閱http://www.informit.com/articles/article.aspx?p=367962

此外,如果文件不是Java項目的一部分,則必須創建項目並將文件移入或放入現有文件。再次確保這些文件位於項目屬性部分所述的源目錄下。

alt text

+0

實際上所有源代碼在一個公共目錄「src」下,大多數文件都很好,「src」下只有幾個文件夾包含帶有空心「J」的java文件,它們的語法突出顯示消失,自動完成沒有工作。 那麼這怎麼可能? – 2010-03-05 22:42:31

+0

您可以右鍵點擊其中一個文件,進入屬性,並將您在初始信息頁面上看到的內容粘貼爲評論? :) – 2010-03-05 22:45:04

+0

此外,請確保項目菜單上啓用了自動生成,但我不確定這會有所作爲。另請檢查您的排除過濾器。 – 2010-03-05 22:46:21

103

由於此問題在Google上排名很高,我將添加一個解決方案來解決一般自動完成問題,而不是'空心J'問題。

嘗試窗口(在Windows/Linux)或Eclipse的(OS X)- >首選項 - >爪哇 - >編輯 - >內容輔助 - >還原爲默認值

內容輔助 - >高級 - >恢復默認值

+0

這對我有效。謝謝! – Aaron 2011-03-23 16:30:56

+17

記得還要在**內容輔助 - >高級**中恢復默認設置。 (*首選項 - > java - >編輯 - >內容輔助 - >高級*) – Tobber 2011-04-28 15:56:44

+1

夥計,你是我的總英雄。這正是我遇到的問題。我從未對此面板進行過更改,但顯然不知怎的,「Java」選項未被選中。 – fool4jesus 2012-06-14 14:29:00

2

我解決了這個問題,如果自動完成不起作用,刪除文件。在複製源代碼之前。然後我重新創建了具有相同名稱的java文件。粘貼之前複製的源代碼。

+0

This Works。必須有更好的方式... – 2014-04-19 04:09:12

18

上面的一些答案(恢復默認值)對於某些adt捆綁安裝(從2013年1月起)不起作用。

在這種情況下,去

窗口 - >首選項 - >爪哇 - >編輯 - >內容輔助 - >高級

,並勾選JAVA的提案選項。

+1

在Eclipse中爲我工作Kepler – fjsj 2014-01-08 18:34:25

+1

在日食中爲我工作Juno – koleanu 2014-06-28 10:32:16

1

作爲@VonC答案的附錄,確保Java文件是包含模式的一部分。我曾在那裏構建過程中創建的項目,而只有包括.js文件,而不是Java文件的情況下:

Shows Eclipse Include without Java files

您可以通過手動編輯按鈕編輯的夾雜物。在我的情況下,對構建腳本進行了修復,使其成爲永久性的。

0

確保您擁有正確的目錄結構。筆者認爲:Java文件旁邊

  • 空心Ĵ圖標 - 不會建立
  • 普通Ĵ的Java文件旁邊的圖標 - 要建立一個文件。

我在創建webapp artefact時犯了一個錯誤。默認情況下,它不會爲Java創建文件夾,而是爲資源創建文件夾。我錯誤地把我的消息來源放在那裏。 看一看 - 看看區別。

enter image description here

0

無論是恢復默認設置或我的構建路徑(文件已經在包目錄瓦特/其他文件,其中自動完成是工作)固定的問題。修復我是顯式關閉文件(右鍵單擊文件名在選項卡)並重新打開。有趣的是,重新啓動Eclipse也不起作用。

相關問題