Java - Error: A JNI error has occurred, ... in thread "main" java.lang.UnsupportedClassVersionError:

Java - Error: A JNI error has occurred, ... in thread "main" java.lang.UnsupportedClassVersionError:

目前我尝试在本地连接到我的 mysql 服务器。我的代码如下所示:

import java.sql.*; 

public class JdbcSelectTest {
    public static void main(String[] args) {
        try (
                Connection conn = DriverManager.getConnection(
                        "jdbc:mysql://localhost:3306/ebookshop?useSSL=false", "...", "...");

                Statement stmt = conn.createStatement();
        ) {
            String strSelect = "select title, price, qty from books";
            System.out.println("The SQL query is: " + strSelect);
            System.out.println();

            ResultSet rset = stmt.executeQuery(strSelect);

            System.out.println("The records selected are:");
            int rowCount = 0;
            while(rset.next()) {   // Move the cursor to the next row, return false if no more row
                String title = rset.getString("title");
                double price = rset.getDouble("price");
                int    qty   = rset.getInt("qty");
                System.out.println(title + ", " + price + ", " + qty);
                ++rowCount;
            }
            System.out.println("Total number of records = " + rowCount);

        } catch(SQLException ex) {
            ex.printStackTrace();
        }
    }
}

现在,当我编译时:javac JdbcSelectTest.java 一切正常。但是现在当我尝试 运行 编译时: java -cp .;C:\Users\Marco\IdeaProjects\mysql-connector-java-8.0.13\mysql-connector-java-8.0.13.jar JdbcSelectTest 我得到以下错误:

Error: A JNI error has occurred, please check your installation and try again Exception in thread "main" java.lang.UnsupportedClassVersionError: JdbcSelectTest 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...

我的JAVA_HOME属性指向我本地安装的jdk版本11.0.1.
mysql-connector-java 版本是:8.0.13
任何人都可以帮助我 - 顺便说一句。我是 java 的新手 - 所以任何评论都有帮助。

java 版本不匹配。您需要安装 java 的正确版本,即 java 8 并使用它编译您的代码。在这里您可以找到 table 所需的版本:vers.

您的问题与 mysql 库无关。

错误消息中有意义的部分:

JdbcSelectTest has been **compiled by** [...] Java Runtime (class file version **55.0**)

this [...] Java Runtime only **recognizes** class file versions up to **52.0**

这可以翻译成这样:

JdbcSelectTest 已被 Java 11 编译,但 [=37= 试图 运行 ] 8.

如果您想验证这一点,只需在您的控制台中输入以下这些命令:

:~ > java -version
:~ > javac -version

而且你会觉得它们是不同的。您已经检查了 JAVA_HOME 变量,但您还必须查看 PATH 变量以修复此问题。 This link 会帮助你。