java.lang.ClassNotFoundException: com.mysql.jdbc.Driver, если проект встроен в jar - PullRequest
0 голосов
/ 05 ноября 2018

Я заставил свой проект использовать NetBeans, когда я запускаю его через NetBeans, он может работать должным образом без каких-либо ошибок. Но когда я встраиваю его в файл jar и пытаюсь войти в свое приложение, я получаю сообщение об ошибке:

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver в java.base / jdk.internal.loader.BuiltinClassLoader.loadClass (неизвестный источник)

error1

А в cmd:

error

Я был этот учебник, и он не работает. И я прочитал и следую учебнику, который был похож на эту мою проблему на этом и других сайтах, но у меня ничего не получилось.

это моя библиотека: my library

А это мой код

 package config;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
/**
 *
 * @author nasution
 */
public class Koneksi {
    private static Connection koneksi;
    public static Statement stm;

    public static Connection getKoneksi() throws ClassNotFoundException{
        try{
            Class.forName("com.mysql.jdbc.Driver");
                koneksi = DriverManager.getConnection("jdbc:mysql://localhost/db_surat","root","");
        }catch(SQLException e){
            JOptionPane.showMessageDialog(null, "koneksi gagal"+ e.getMessage());
        }
        return koneksi;
    }

}

это мой проект, который был преобразован в jar: project jar

и это моя библиотека в папке "dist / lib", которая была сгенерирована при сборке проекта my library

1 Ответ

0 голосов
/ 05 ноября 2018

Вам необходимо объявить необходимые библиотеки в файле манифеста /META-INF/MANIFEST.MF . Если вы посмотрите на Добавление классов в путь к классу JAR-файла , синтаксис будет:

Class-Path: lib/mysql-connector-java-5.1.23-bin.jar

Как вы будете изменять /META-INF/MANIFEST.MF, зависит от вашего механизма упаковки JAR, большинство из них дают вам возможность автоматически сгенерировать этот файл.

...