0x30 java_java编译成功了 但是运行报错了?

从你的报错来看,这是版本兼容性问题。Java由于已经发展这么多年,经历很多版本。就跟新的Windows 应用程序,不能在老的win98上跑是一样的。你写的Customer.java是Java程序的源代码文件,而源代码文件是不能直接运行的。

你用javac这个JDK命令,编译源代码文件,生成了一个Customer.class文件。在这个过程当中,需要指定class文件的编译版本(没有指定就默认当前),以保证兼容性。

你最后用调用 java Customer,实际上是运行Customer.class。在这里,java代表你运行时的JVM,这里的版本,应该大于或者等于你的class文件。

在这个过程当中,你编译的class版本如果高于运行时的虚拟机版本,就会报这个错。

报错信息显示,你编译的class文件version 是54,对应的是Java 10,这个是非常新的,还没有正式发布。而你运行时java 最高能到52,对应的是Java 8.

你可以分别用javac -version 和 java -version 检查一下版本是不是不一致。

现在有几种方法:修改环境变量,使得java运行版本也为Java 10,你有JDK 10,就应该有对应的JRE。

每次编译时,通过 javac -target 1.8 指定编译成老版本的class文件。当前环境直接运行。

卸载JDK 10,从新安装JDK 8.

一般来说,如果你是新机器安装一次JDK,不应该发生这种问题,你可能是以前安装过java然后现在又因为学习,又一次安装了最新的JDK吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值