你使用的JVM環境版本過低,就是你試圖使用一個較低版本的JVM去執行一個較高版本的class檔案,例如,你的JDK是1.4版本,Tomcat中執行的class檔案是JDK5的。
出現Couldnotfindthemainclass.programwillexit和java.lang.UnsupportedClassVersionError錯誤的原因,是因為我們使用高版本的JDK編譯的Javaclass檔案試圖在較低版本的JVM上執行,所報的錯誤。
因為,高版本的JDK生成的class檔案使用的格式,可能與低版本的JDK的.class檔案格式不同。這樣,低版本的JVM無法解釋執行這個.class檔案,會丟擲Couldnotfindthemainclass.programwillexit,java.lang.UnsupportedClassVersionError不支援的Class版本錯誤。
這個錯誤尤其在JDK5與JDK5之前的版本上表現明顯。因為,JDK5在Java語法上作了不少增強,引入了一些新的.class檔案的元素,導致舊版本的JVM無法解釋、執行.class檔案。即使這個類並沒有使用任何JDK5的新元素,但是JDK5生成的.class檔案,JDK1.4及其以前的JVM都無法辨認!
在MyEclipse-->應用伺服器下,指定Tomcat5。指定Tomcat使用jdk1.4。這樣,就全部指定使用Jdk1.4來編譯和執行程式了。如果全部指定jdk5也是可以的。但是,絕對不能夠使用jdk5編譯程式,而又在jdk1.4上執行程式,那樣將會丟擲java.lang.UnsupportedClassVersionError不支援的Class版本錯誤。
這種情況下,不論是Eclipse生成的war包,還是ant檔案生成war包,都使用jdk5編譯,就會在執行時出現錯誤,該應用程式將無法啟動。如果你檢視Tomcat的日誌檔案,將會看到正是java.lang.UnsupportedClassVersionError錯誤發生了!
其實無非就是版本問題,JDK版本的問題。
解決方法:在Eclipse視窗-->首選項-->Java-->編譯器-->JDK一致性-->編輯器一致性級別,從5.0改到1.4就可以了。
如果沒有安裝Eclipse,那就解除安裝jdk安裝較低版本的jdk環境即可。
你使用的JVM環境版本過低,就是你試圖使用一個較低版本的JVM去執行一個較高版本的class檔案,例如,你的JDK是1.4版本,Tomcat中執行的class檔案是JDK5的。
出現Couldnotfindthemainclass.programwillexit和java.lang.UnsupportedClassVersionError錯誤的原因,是因為我們使用高版本的JDK編譯的Javaclass檔案試圖在較低版本的JVM上執行,所報的錯誤。
因為,高版本的JDK生成的class檔案使用的格式,可能與低版本的JDK的.class檔案格式不同。這樣,低版本的JVM無法解釋執行這個.class檔案,會丟擲Couldnotfindthemainclass.programwillexit,java.lang.UnsupportedClassVersionError不支援的Class版本錯誤。
這個錯誤尤其在JDK5與JDK5之前的版本上表現明顯。因為,JDK5在Java語法上作了不少增強,引入了一些新的.class檔案的元素,導致舊版本的JVM無法解釋、執行.class檔案。即使這個類並沒有使用任何JDK5的新元素,但是JDK5生成的.class檔案,JDK1.4及其以前的JVM都無法辨認!
在MyEclipse-->應用伺服器下,指定Tomcat5。指定Tomcat使用jdk1.4。這樣,就全部指定使用Jdk1.4來編譯和執行程式了。如果全部指定jdk5也是可以的。但是,絕對不能夠使用jdk5編譯程式,而又在jdk1.4上執行程式,那樣將會丟擲java.lang.UnsupportedClassVersionError不支援的Class版本錯誤。
這種情況下,不論是Eclipse生成的war包,還是ant檔案生成war包,都使用jdk5編譯,就會在執行時出現錯誤,該應用程式將無法啟動。如果你檢視Tomcat的日誌檔案,將會看到正是java.lang.UnsupportedClassVersionError錯誤發生了!
其實無非就是版本問題,JDK版本的問題。
解決方法:在Eclipse視窗-->首選項-->Java-->編譯器-->JDK一致性-->編輯器一致性級別,從5.0改到1.4就可以了。
如果沒有安裝Eclipse,那就解除安裝jdk安裝較低版本的jdk環境即可。