java编译器与java运行器版本一致性问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java编译器与java运行器版本一致性问题相关的知识,希望对你有一定的参考价值。

java运行器是否想低版本兼容?也就是说高版本的运行器可以执行低版本编译器编译好的类,但不能执行比它版本高的编译器编译的类。

例如:
1.5版本的jre,可以执行1.5或1.4版本javac编译的类,但1.4版本的jre不能执行1.5版本javac编译的类。

请知道原理的同志指导一下,最好能提供一些介绍该方面的文章。

参考技术A 你如果想向下兼容,可以在javac或java命令后加上你代码实际的版本,比如-1.1

Java 环境问题总结


  1. Java 文件识别不出来, 既java 后缀不能识别为C, 原因是没设置成Maven 项目,关注idea 右下角提示
  2. idea 编译结果跟 Terminal 编译结果不一致,一般是preference maven 版本跟机器mvn 版本不一致导致
  3. 编码字体设置一定要idea 跟 pom 格式设置 保持一致,负责代码编译成功,发布后编译才会失败
  4. 代码有 mvn install 依赖欠他模块的,一定要mvn clean install -DskipTests 执行后测试下,以免编译都是成功,发布才发现问题
  5. idea 版本明明切换了,代码却没有更新情况重新导入还没用的时候,要删除下 .idea 再重新打开

以上是关于java编译器与java运行器版本一致性问题的主要内容,如果未能解决你的问题,请参考以下文章

Java编译期和运行期 & JVM

Flutter:构建运行器引发预编译错误

java 编译器级别与项目版本不匹配

从 GitLab CI 运行器连接到 docker-in-docker

java程序与编译

Java和Javac版本不一致