引言:
eclipse新導入的項目經常可以看到“XX cannot be resolved to a type”的報錯信息,XX表示一個java類。本文將做以簡單總結。
正文:
(1)jdk不匹配(或不存在)
項目指定的jdk為“jdk1.6.0_18”,而當前eclipse使用的是“jdk1.6.0_22”。需要在BuildPath | Libraries,中做簡單調整。
(2)jar包缺失或沖突
當找不到“XX”所在的jar包時,會報這個錯。解決只需要找到(ctrl+點擊,可能能看到jar包名稱)對應jar包導入項目即可。
另外,出現相同的XX時也會報此錯。可能需要調包、解包、選刪。
(3)eclipse查找項目類型策略所致
eclipse下,上述兩條都對比過了,沒有任何問題,可偏偏還報這錯。這時,需要操作一下 Project | Clean... ,問題即可解決。原因是,機制所致。因為某些特殊原因,eclipse沒能自動編譯源代碼到build/classes(或其他classes目錄),導致類型查找不到。
(4) JRE的版本不匹配
由於項目比較老,導致之前的很多java類在現有的JRE下無法使用,Eclipse老是提醒找不到。
下面也會給出幾個例子:
a. Enumeration cannot be resolved to a variable
如果哪天你這么寫Enumeration enum;
然后Eclipse刮是提示Enumeration cannot be resolved to a variable
那就悲劇了,盡管程序可以運行,但是有些功能實現不了。。。。
好了,解決方案還是挺簡單的,如果你當前使用的是JRE 1.5或者1.6或更高的,
簡單的可以改為1.4或者以下,再來編譯,是不是好了,額
為什么會這樣的呢?
原來從Java5開始,enum已經作為一個關鍵字,那樣寫當然會有問題啦,所以另一種改法就是把enum換成別的名字咯
Project-->Properties-->Java Build Path: add liberary , add the correct JRE .
b. 運行Servlet程序編譯的時候找不到javax.servlet包。
解決辦法:
1:servlet-api.jar復制到 C:\%Java_Home%\jre1.5.0_10\lib\ext
2:在classpath中加入“D:\Tomcat 5.5\common\lib\servlet-api.jar;”
以上方法你通過Javac 編譯和運行就沒問題 但是如果你是在Eclipse 環境下編譯起來還是出現軟件包不存在的問題;
3:在Eclicpse8.6中還要配置引入這個包。方法是:
打開project->project properties->Libraries->add external jars->把Tomcat下的servlet.api.jar導入。
4.完成。再次運行的時候就能通過了。
對於導入jsp-api.jar這個包也是一樣的, 他們位於Tomcat下tomcat的common\lib中有這個包中,將其導入到classpath下即可。