idea2022.2 jdk8切换为jdk7 踩坑
查阅诸多资料得出的结论就是:项目编译得到的class文件的版本高于运行环境中jre的版本号,高版本JDK编译的class不能在低版本的jvm虚拟机下运行,否则就会报这类错,因此无法运行!(2)) 若是还是不行,则进一步删除C:\Windows\System32目录下的java.exe,javaw.exe,javaws.exe文件。(1)删除C:\Program Files (x86)\Common
切换过程出现了以下错误
错误1:java: 无效的标记: -parameters
错误原因:
idea设置中版本不统一
处理方法:
检测以下是否修改为jdk7版本
错误2:Unsupported major.minor version 52.0
错误原因:
查阅诸多资料得出的结论就是:项目编译得到的class文件的版本高于运行环境中jre的版本号,高版本JDK编译的class不能在低版本的jvm虚拟机下运行,否则就会报这类错,因此无法运行!
处理方法:
同上,另jdk7的java编译器内部版本号是51,如下是对应关系
JDK版本和Java编译器内部的版本号
J2SE 8 = 52,
J2SE 7 = 51,
J2SE 6.0 = 50,
J2SE 5.0 = 49,
JDK 1.4 = 48,
JDK 1.3 = 47,
JDK 1.2 = 46,
JDK 1.1 = 45
错误3:安装了多个jdk,环境配置不生效(cmd执行命令还是老的jdk版本)
错误原因:
如下位置的优先级高于环境变量
解决办法:
(1)删除C:\Program Files (x86)\Common Files\Oracle\Java\javapath里的exe文件
(2)) 若是还是不行,则进一步删除C:\Windows\System32目录下的java.exe,javaw.exe,javaws.exe文件
错误4:java: Compilation failed: internal java compiler error
错误原因:
(1)idea的JDK版本和项目配置的不同,同错误1处理方法
(2))jvm分配的堆栈内存不足
解决办法:
修改完毕
在执行完以上改动后,做以下操作
(1)防止清理不干净,我直接把本地生成的class文件删除,重新编译
(2)重新构件项目
经过如下改动,可通过jdk7编译生成class文件,版本是51
更多推荐
所有评论(0)