Reputation: 5024
I wrote a simple project in Java, using default configuration in IntelliJ IDEA. I built the project and ran it successfully. I was using Java 1.9. I wanted to check if it runs with Java 1.8. I changed the JRE in the configuration from Java 1.9 to Java 1.8 and ran my project. The following error occurred:
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: Main has been compiled by a more recent version of the Java Runtime (class file version 53.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(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:495)
This question: IntelliJ Error: A JNI error has occurred, please check your installation and try again is different because it has NoClassDefFoundError
instead of UnsupportedClassVersionError
. This question A JNI error has occurred, please check your installation and try again in Eclipse x86 Windows 8.1 is also different because it regards Eclipse, not IntelliJ IDEA.
Upvotes: 2
Views: 22293
Reputation: 679
Problem is our manifest files doesn't match the project. What I did is solved my problem. I had provided codes for chat client and server.
First I opened a new Java project.then created a package ,and then what I did is created two classes (you can give any name since we change it later.) for my 2 existing classes.
Then I opened existing classes in notepad,copy all the content and paste them to newly created classes. An error occurs saying
names doesn't match
. Rename compilation units.
Then run
..worked for me.
Upvotes: 0
Reputation: 5024
I found a solution, editing a component configuration in .idea/misc.xml
.
It was
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_9" project-jdk-name="9.0" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
and I changed it into
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="8.0" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
Then an applet appeared, which helped me add a new JDK (Java8) and I was able to run my project and the error disappeared.
Upvotes: 1