Java - ошибка: произошла ошибка JNI, ... в потоке "main" java.lang.UnsupportedClassVersionError: - PullRequest
0 голосов
/ 14 января 2019

В настоящее время я пытаюсь подключиться локально к моему серверу 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, пожалуйста, проверьте вашу установку и Попробуйте снова Исключение в потоке "main" 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 - так что любой комментарий помогает.

Ответы [ 2 ]

0 голосов
/ 15 января 2019

Ваша проблема не связана с mysql lib.

Значимые части сообщения об ошибке:

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, чтобы исправить это. Эта ссылка поможет вам в этом.

0 голосов
/ 14 января 2019

Существует несоответствие версии Java. Вам нужно установить правильную версию Java, то есть Java 8 и скомпилировать свой код с ним. Здесь вы можете найти таблицу с необходимыми версиями: vers .

...