java - 在命令提示符下运行 java 代码时出现问题

标签 java java-8 java-native-interface runtime-error java-11

我安装了 java 版本 8 和 11。当我尝试使用 java 命令在 cmd 中运行任何 .java 文件时,我收到以下消息:

      Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: aa has been compiled by a more recent version of the Java Runtime (class file version 55.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(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

我尝试安装较新版本的 java,但没有任何改变。

最佳答案

Java 11 应支持文件格式 55 ( https://en.wikipedia.org/wiki/Java_class_file#General_layout )。
在命令行中键入 java -version 以确定您是否使用了正确的安装。
如果不正确相应地更改您的环境变量。

关于java - 在命令提示符下运行 java 代码时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56284332/

相关文章:

java - 智能指针与外部代码通过JNI交互

java - 如何在 Java 中使用正则表达式验证 URL?

java - 通过在 J2ME 中提供搜索功能向移动设备的多个联系人发送消息

java - DispatcherServlet 中的 ThreadLocal

java - 'T.super' 是 JLS 的合法表达吗?

java - 数组索引运算符作为方法引用

java - Java 中是否有可能从 2 个 Stream 中创建一个新 Stream?

java - 沙盒 Maven 构建于 Jenkins 之上

Java VM - Eclipse 使用我的内核?

java - 无法编译 JNI C 不兼容的指针类型