我使用IntelliJ IDEA中的默认配置用Java编写了一个简单项目。我建立了项目并成功运行了它。我正在使用Java 1.9。我想检查它是否与Java 1.8一起运行。我将配置中的JRE从Java 1.9更改为Java 1.8,然后运行了我的项目。发生以下错误:
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)
此问题:IntelliJ Error: A JNI error has occurred, please check your installation and try again有所不同,因为它具有NoClassDefFoundError
而不是UnsupportedClassVersionError
。这个问题A JNI error has occurred, please check your installation and try again in Eclipse x86 Windows 8.1也有所不同,因为它涉及Eclipse,而不是IntelliJ IDEA。
答案 0 :(得分:0)
我找到了解决方案,在.idea/misc.xml
中编辑了组件配置。
是
<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>
然后我将其更改为
<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>
然后出现了一个applet,它帮助我添加了新的JDK(Java8),并且能够运行我的项目,并且错误消失了。
答案 1 :(得分:0)
问题是我们的清单文件与项目不匹配。我所做的解决了我的问题。我已经为聊天客户端和服务器提供了代码。
首先,我打开了一个新的Java项目,然后创建了一个程序包,然后为我现有的2个类创建了两个类(您可以输入任何名称,因为我们稍后会对其进行更改。)。
然后我在记事本中打开现有的类,复制所有内容并将其粘贴到 新创建的类。 发生错误,说
名称不匹配
。重命名编译单元。
然后run
..为我工作。