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


  错误:发生了JNI错误,请检查您的安装和
  再试一次
      线程“主”中的异常java.lang.UnsupportedClassVersionError:JdbcSelectTest已由Java的最新版本进行编译
  运行时(类文件版本55.0),此
       Java Runtime版本仅可识别52.0以下的类文件版本...


我的JAVA_HOME属性指向我本地安装的jdk版本11.0.1。
mysql-connector-java版本ist: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将帮助您。

09-30 17:32
查看更多