鱼C论坛

 找回密码
 立即注册
查看: 2976|回复: 18

[已解决]新手求教

[复制链接]
发表于 2020-2-11 12:39:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
编译class文件出现下面的
怎么搞

E:\java学习\新建文件夹>java HelloWorld
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: HelloWorld has been compiled by a more recent version of the Java Runtime (class file version 57.0), this version of the Java Runtime only recognizes class file versions up to 52.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

百度翻译是
出现JNI错误,请检查安装并重试

线程“main”java.lang.UnsupportedClassVersionError中出现异常:HelloWorld已由更新版本的java运行时(类文件版本57.0)编译,此版本的java运行时仅识别高达52.0的类文件版本

最佳答案
2020-2-11 17:25:10
注意要选择download this software.
  Accept License Agreement
这里发布了图片,我没法指给你看,
给个最佳答案哟
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-11 13:44:44 | 显示全部楼层
字面意思  运行的class文件版本是57.0的  而你安装的java最高只识别52.0的class文件版本所以会报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-11 13:54:14 | 显示全部楼层
苏沫儿 发表于 2020-2-11 13:44
字面意思  运行的class文件版本是57.0的  而你安装的java最高只识别52.0的class文件版本所以会报错

但是我安装的就是官网提供的java
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-11 14:00:14 | 显示全部楼层
苏沫儿 发表于 2020-2-11 13:44
字面意思  运行的class文件版本是57.0的  而你安装的java最高只识别52.0的class文件版本所以会报错

我去官网下载了一遍Java安装,运行后还是这个结果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-11 15:04:37 | 显示全部楼层
LAZNN 发表于 2020-2-11 14:00
我去官网下载了一遍Java安装,运行后还是这个结果

你能否给我看一下你的编辑器设置的编译器版本?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-11 15:15:39 | 显示全部楼层
LAZNN 发表于 2020-2-11 14:00
我去官网下载了一遍Java安装,运行后还是这个结果

你把编译用的jdk版本设置成1.8 就可以了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-11 15:57:19 | 显示全部楼层
苏沫儿 发表于 2020-2-11 15:15
你把编译用的jdk版本设置成1.8 就可以了

我输入的是javac -version,他显示的是13.0.2,我去网上搜搜
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-11 15:59:06 | 显示全部楼层
苏沫儿 发表于 2020-2-11 15:15
你把编译用的jdk版本设置成1.8 就可以了

我是在dos那个黑窗口运行的,因为b站教学用的就是dos
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-11 16:58:18 | 显示全部楼层
官网下载不用注册也可以的。。。不信你试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-11 17:10:46 | 显示全部楼层
月满霜华 发表于 2020-2-11 16:58
官网下载不用注册也可以的。。。不信你试试

叫什么,是JDK吗,我就是在官网下载的鸭
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-11 17:14:34 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-11 17:25:10 | 显示全部楼层    本楼为最佳答案   
注意要选择download this software.
  Accept License Agreement
这里发布了图片,我没法指给你看,
给个最佳答案哟
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-11 18:29:48 | 显示全部楼层
月满霜华 发表于 2020-2-11 17:25
注意要选择download this software.
  Accept License Agreement
这里发布了图片,我没法指给你看,

他还要创建账户。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-11 18:41:55 | 显示全部楼层
月满霜华 发表于 2020-2-11 17:25
注意要选择download this software.
  Accept License Agreement
这里发布了图片,我没法指给你看,

版本是1.8.几,但是运行结果还是那个样子,下载的是你的那个,我下的是windows 64位的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-11 20:06:28 | 显示全部楼层
LAZNN 发表于 2020-2-11 18:29
他还要创建账户。。

哦哦,我解决了,我下载了1.8之后重新javac了一遍,用新的class文件就可以运行了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-11 20:07:10 | 显示全部楼层
苏沫儿 发表于 2020-2-11 15:15
你把编译用的jdk版本设置成1.8 就可以了

谢谢,已经解决了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-11 20:29:07 | 显示全部楼层
是我解释不清楚嘛0.0  首先你没必要重新下载.  

问题在于这是由较高版本的JDK编译的java helloworld class文件试图在较低版本的JVM上运行产生的错误。
在安装jdk时候,jre不要装同一目录,否则覆盖了之后javac.exe就没了,环境变量%JAVA_HOME%结尾不要加分号,不然其他相关引用后面就多了分号。

解决方式
不用IDE的话可以使用javac命令javac命令格式及用法如下:
用法:javac <选项> <源文件>
其中,可能的选项包括:
-source <版本> 提供与指定版本的源兼容性
-target <版本> 生成特定 VM 版本的类文件
例如:
C:\>javac -source 1.8 -target 1.8 helloworld.java
这样就把helloworld.java源文件兼容的编译成1.8版本了
1.8是你电脑 java -version 显示的版本  我只是做例子教你怎么修改
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-11 20:39:56 | 显示全部楼层
LAZNN 发表于 2020-2-11 20:07
谢谢,已经解决了

刚没刷新页面没看到  消息  刚回复的请无视
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-11 23:47:47 | 显示全部楼层
苏沫儿 发表于 2020-2-11 20:29
是我解释不清楚嘛0.0  首先你没必要重新下载.  

问题在于这是由较高版本的JDK编译的java helloworld cla ...

没有啊,我安装的JDk版本是13.0,我又下载了一个版本是1.8
我就用1.8的重新编译的class就能运行了
之后我把13.0删了
我第二天学hh好多看不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 14:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表