2015年4月12日 星期日

JRE與JDK版本不相容解決方法

 
java-logo

Context
  • 剛在Pi上安裝完java發現沒辦法執行寫好的程式
  • 而執行時得到的錯誤訊息是:
    Exception in thread "main" java.lang.UnsupportedClassVersionError: HelloWorld:
    Unsupported major.minor version 52.0  
  • 這個錯誤訊息說明在主程式中出現了類別版本不相容的錯誤,以下提供解決方法

解決方法: Step 1:確認版本
  • 確認JRE版本
    • 電腦中可能不只存在一套JRE,要確定執行java指令時,是啟動了甚麼版本的JRE:
    • $java- version
    • Image(2)
    • 顯示目前的JRE版本是1.6.X
  • 確認JDK版本
    • $javac -versionImage
    • java的編譯器版本是1.8
    • 因為版本不同,當使用新版本的JDK編譯出class檔後,若在舊版本的JRE上執行,就可能發生以下錯誤
    • Image(3)


Step 2:故障排除
  • 解決方法1:指定編譯版本
    • 使用-target指定編譯版本,便可以正常執行
    • Image(4)
  • 解決方法2:更改JRE版本
    • 你的作業系統上可能已經安裝了最新版本的執行環境,但系統卻沒有使用最新版本的執行環境
    • $duso update-alternatives --config java:
      這個指令可以讓你指定要使用的JRE版本
    • Image(5)
    • 指定與JDK一致的JRE版本後,便可以順利執行java程式了



2 則留言:

此部落格主要作為學習研究、心得分享,歡迎大家討論指教...