Java - 错误 : A JNI error has occurred, ... 在线程 "main"java.lang.UnsupportedClassVersionError 中:

标签 java mysql database java-8 java-11

目前我尝试在本地连接到我的 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 我收到以下错误:

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 新手 - 所以任何评论都有帮助。

最佳答案

您的问题与 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 编译,但试图由 Java 8 运行

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

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

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

关于Java - 错误 : A JNI error has occurred, ... 在线程 "main"java.lang.UnsupportedClassVersionError 中:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54185363/

相关文章:

java - 是否有Java流等同于变量赋值

javascript - 表单提交空值

database - 带有特殊字符的 SAS 输入数据

database - 如何抓取 Heroku 数据库?

java - 将 jsp 重定向到另一个 jsp (Struts1)

java - 交换机的 "unreachable"错误是什么?

php - 如何将数据插入一个表并获取主键作为外键插入另一个表?

mysql - MySQL 中返回表的用户定义函数

javascript - 允许远程服务器接受来自本地主机的带有参数的请求

java - hibernate 标准是否有任何标准来涵盖列表的包含条件