Multiple markers at this line - The type java.io.ObjectInputStream cannot be resolved. It is indirectly referenced from required .class files - The type java.io.ObjectInputStream cannot be resolved. It is indirectly referenced from required .class files
這個錯誤出現的環境:
eclipse:Version: 3.6.2
JDK:1.8
代碼如下,在第一行的package位置始終報這個編譯錯。
package Chapter04; public class DevideByMinusException extends Exception { /** * */ private static final long serialVersionUID = 1L; public DevideByMinusException(){ } public DevideByMinusException(String message){ super(message); } }
百度了好久,也沒有找到解決方法,原因大概是這樣的。
1,jdk版本太新,而eclipse版本比較舊,eclipse本身就是java開發的,所以eclipse的編譯器使用的jdk版本沒有程序的jdk版本高,造成一些誤報。(高版本的sdk中的類有變化,eclipse編譯器識別不了(猜測))。
2,要解決的話,方法有兩個
1)可以選用較低版本的sdk,比如我就用回1.6版本的sdk
window->preferences->Java->Installed JREs->Add 選擇一個低版本的sdk目錄
2)下載一個最新的eclipse,與1.8版本的sdk匹配
我用的第一種,因為我本機有低版本的sdk,這樣代價低一點。