java編譯時版本和運行時版本
編譯時是調用檢查你的源程序是否有語法錯誤,如果沒有就將其翻譯成位元組碼文件。即.class文件。
運行時是java虛擬機解釋執行位元組碼文件。
❷ 運行環境jre版本和jar包編譯版本不一致導致:Unsupported major.minor version 52.0
我在本地使用 Intellij Idea 打包了一個 spark 的程序 jar 包,放到linux集群上運行,報錯信息是: Unsupported major.minor version 52.0
本機系統 -> windows10 開發工具 -> Intellij Idea 構建工具 -> maven
集群系統 -> Linux jre -> Java(TM) SE Runtime Environment (build 1.7.0_80-b15)`
根據報錯 log 可以斷定的是由於我本地編譯打包所使用的 jdk 版本和 linux 集群的 jre 版本不一致導致的。stanford parser 和 jdk 版本對應關系為:
可以推斷出是由於我打包編譯時所使用的 jdk 版本是 jdk8,而集群的 jre 是7,才導致的問題。
maven 項目會用 maven-compiler-plugin 默認的 jdk 版本來進行編譯,如果不指明版本就容易出現版本不匹配的問題,可能導致編譯不通過的問題。解決辦法:在 pom 文件中配置 maven-compiler-plugin 插件。
方式一:
方式二:
如豎首果使用 scala 編寫 spark 的程序,在編譯打包時候要注意 scala 的版本號和 jdk 版本的對應關系,同時也要考慮集群上 jre 的版本。比如我的集群上所使用的 jre 的版本號為 7,那麼本機打包編譯的 jdk 版本必須旅搜為 7 ,那麼 scala 版本必須為 2.12 版本以下。
Intellij Idea 設置「開發」運拆纖歷行時所用的 jdk 版本的幾個地方:
如果上圖中 Intellij Idea 的開發運行 jdk 版本配置錯誤,在開發運行編譯的時候會報: Error:java: 無效的源發行版: xx
❸ 如何打開java編譯版本和運行版本
方法/步驟
一般來說,如果使用高版本jdk編譯之後的class文件,編譯的時候沒有帶source和targe參數,再把class文件放到低版本環境下運行,會出現如圖所示的錯誤:java.lang.UnsupportedClassVersionError: Test : Unsupported major.minor version
❹ java編譯器與java運行器版本一致性問題
你如果想向下兼容,可以在javac或java命令後加上你代碼實際的版本,比如-1.1
❺ java版本問題
JDK(Java Development Kit) 是 Java 語言的軟體開發工具包(SDK)。
SE(JavaSE),standard edition,標准版,是我們通常用的一個版本,從JDK 5.0開始,改名為Java SE。
EE(JavaEE),enterprise edition,企業版,使用這種JDK開發J2EE應用程序,從JDK 5.0開始,改名為Java EE。從2018年2月26日開始,J2EE改名為Jakarta EE[1-2]。
ME(J2ME),micro edition,主要用於移動設備、嵌入式設備上的java應用程序,從JDK 5.0開始,改名為Java ME。
沒有JDK的話,無法編譯Java程序(指java源碼.java文件),如果想只運行Java程序(指class或jar或其它歸檔文件),要確保已安裝相應的JRE。
以下是各版本的名稱及發布日期:
版本名稱發行日期
JDK1.1.4Sparkler(寶石)1997-09-12
JDK1.1.5Pumpkin(南瓜)1997-12-13
JDK1.1.6Abigail(阿比蓋爾–女子名)1998-04-24
JDK1.1.7Brutus(布魯圖–古羅馬政治家和將軍)1998-09-28
JDK1.1.8Chelsea(切爾西–城市名)1999-04-08
J2SE1.2Playground(運動場)1998-12-04
J2SE1.2.1none(無)1999-03-30
J2SE1.2.2Cricket(蟋蟀)1999-07-08
J2SE1.3Kestrel(美洲紅隼)2000-05-08
J2SE1.3.1Ladybird(瓢蟲)2001-05-17
J2SE1.4.0Merlin(灰背隼)2002-02-13
J2SE1.4.1grasshopper(蚱蜢)2002-09-16
J2SE1.4.2Mantis(螳螂)2003-06-26
JavaSE5.0(1.5.0)Tiger(老虎)2004-09-30
JavaSE6.0(1.6.0)Mustang(野馬)2006-04
JavaSE7.0(1.7.0)Dolphin(海豚)2011-07-28
JavaSE8.0(1.8.0)Spider(蜘蛛)2014-03-18
JavaSE92017-09-21
JavaSE102018-03-14