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