运行java代码,报错 Error:A JNI error has occurred,please check your installation and try again

报错信息

在这里插入图片描述

解决过程

  • 根据报错信息可以得知,报错的原因是由于编译这份java代码的版本和当前用于运行的java版本并不一致。并且编译的版本仅支持52.0或以上的运行版本。从而可以得知,当前用于运行的java版本低于52.0。

  • 而这里首先需要了解,什么是编译的版本,什么是运行的版本。也就是我们需要区分开jre和jdk。

    • 我们在安装java环境的时候,一个版本会分别对应两个文件夹,分别是jrejdk。而jre表示的是java runtime environment ,即java的运行环境,而jdk表示的是Java SE Development kit(JDK),即java的编译环境。
    • 我们可以在cmd中分别查看这两个环境的版本是否一致(如下图):
      在这里插入图片描述
    • java -version查看的是jre的版本(运行环境)。
    • javac -version查看的是jdk的版本(编译环境)。
    • 注意:如果你输入以上命令并不能成功查看版本,说明环境配置有问题,欢迎参考这里
  • 回到正题,如果在查看版本后发现不一致,那么就去重新配置一下环境,保证版本一致后重新编译运行即可。

  • 需要说明的是,我这里这份代码并不是我编写的,并且也只拿到了编译完成后的class文件,因此只能通过解决更换运行的java版本解决这个问题。

  • 而从报错信息中可以知道,这份代码在编译后,仅支持用52.0及以上的java版本的jre环境运行,即使不知道52.0的版本对应的是哪个java版本,但肯定是需要高于1.8.0的。并且为了避免以后产生问题,我计划直接更新整个java的版本,即将jdk和jre换成一个新的版本,也考虑到以后可能还需要用到1.8.0的版本,因此并不会把1.8.0的版本删除。

解决方式

  • 首先下载1.9的java版本,即下载jdk9.0的安装包(jdk包包括jdk和jre, 9.0即1.9)。

  • 这里提供(windows-x64)的网盘链接
    提取码:63q0

  • 下载安装完成后,即可开始配置环境。为了方便管理,我将1.9放在和之前的1.8一个路径下。如下图:
    在这里插入图片描述

  • 修改系统变量中原有的JAVA_HOME和JRE_HOME路径,使其指向新安装的1.9的java版本(如果配置环境的方式和我的不一样没关系,本质只是指向的路径发生了变化,建议采用我这种方式进行配置,方便管理,可以参考上面提供的配置链接。)。如下图

在这里插入图片描述
在这里插入图片描述

  • 再次检查jdk和jre的版本(记得确定后重新打开cmd)
    在这里插入图片描述

  • 再次运行代码,运行成功
    在这里插入图片描述


版权声明:本文为weixin_45895873原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。