最近在学习java,使用的工具是IntelliJ IDEA 2021.2,在编写一个很简单的类,运行时提示:A JNI error has occurred, please check your installation and try again Exception in thread "main"。在百度上搜索了一圈,解决方法都是一个,就是java -version和javac -version版本不一致的问题。我在cmd里运行这两个命令,确实版本不一致,故卸载了一个。后来版本一致之后,仍然出现这个错误。然后我认真分析了一下报错信息,如下:
######
java.lang.SecurityException: Prohibited package name: java.example
at java.lang.ClassLoader.preDefineClass(ClassLoader.java:655)
at java.lang.ClassLoader.defineClass(ClassLoader.java:754)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:495)
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main"
Process finished with exit code 1
######
第一句其实已经说明了错误原因:Prohibited package name: java.example,禁止的包名java.example!!!!是我的包名里面带了java的原因。
######
最后改了包名,能顺利运行了。
提醒大家,错误一定先看提示[/~\\]
最后放一个java和javac版本不一致问题的解决方法:
Error: A JNI error has occurred, please check your installation and try again解决