Idea报错: A JNI error has occurred的问题
具体报错
Error: A JNI error has occurred, please check your installation and try again
原因
一般情况
报错如上一般情况是因为本地 java 编译和 java 运行版本不一致导致的。
所以需要在 Idea 中设置为一样的。
设置如下图:【这里以 jdk 1.8 为例】
01)点击 FIle --> Project Structure
02)设置 Project 中SDK的版本一致

03) Modules 中 修改 Sources 和 Dependencies 中版本一致


04) SDKs 设置版本一致

05)如有其他 SDK ,设置 Global Libraries 保持全局一致【并不是和 JDK 一致,而是和该 SDK 的其他版本一致】

06)点击 Preferences 下的 该位置:设置版本一致


07)最后确认pom文件中是否有显式声明java编译版本等限制字符,如有,可以去掉。然后生效POM文件【有的可以自动生效,有的需要手动生效】
到这里基本一般情况就可以解决并运行了。
其他情况
有时候并不是版本不一致会导致该问题产生,有时候可能因为jar包或者类方法异常。
如:
Exception in thread “main” java.lang.NoClassDefFoundError: org/apache/spark/SparkContext
这个错误等也会导致 A JNI error has occurred
01)确认该类【类所在jar】是否成功导入,如果没导入,pom中记得导入一下
02)导入有包,但是执行报错类异常,确认下是否pom文件中 scope 属性是否设置了 provided ,如果有去掉就可以了【本地可以去掉,打包的时候,如果环境中有该jar,那么打包的时候还需继续加上】

03)如果不喜欢来回改动pom文件,那么可以在如下位置,添加这个包,这样pom文件既可以保持原样,也可以在本地运行。

总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
SpringBoot如何使用@Cacheable进行缓存与取值
这篇文章主要介绍了SpringBoot如何使用@Cacheable进行缓存与取值,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-08-08
SpringBoot中的ApplicationRunner与CommandLineRunner问题
这篇文章主要介绍了SpringBoot中的ApplicationRunner与CommandLineRunner问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-09-09
Java项目开启远程调试的方法步骤(tomcat、springboot)
这篇文章主要介绍了Java项目开启远程调试的方法步骤(tomcat、springboot),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-10-10
spring boot利用docker构建gradle项目的实现步骤
这篇文章主要给大家介绍了关于spring boot利用docker构建gradle项目的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用spring boot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧2018-05-05
Java日期格式化的实现(@JsonFormat和@JSONField)
本文主要介绍了Java日期格式化的实现,主要介绍了@JsonFormat和@JSONField两种方式,具有一定的参考价值,感兴趣的可以了解一下2024-05-05


最新评论