java.lang.ClassNotFoundException:com.mysql.jdbc.Driver(如果项目内置在jar中)

时间:2018-11-05 10:41:12

标签: java netbeans netbeans-8

我使我的项目使用NetBeans,当我通过NetBeans运行它时,它可以正常运行而没有任何错误。 但是,当我将其构建到jar文件中并尝试登录到我的应用程序时,出现错误:

  

java.lang.ClassNotFoundException:com.mysql.jdbc.Driver           在java.base / jdk.internal.loader.BuiltinClassLoader.loadClass(未知来源)

error1

在cmd中:

error

我曾经做过this教程,但没有用。 在本网站和其他网站上,我已阅读并遵循与我的问题类似的教程,但对我没有任何帮助。

这是我的图书馆: 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 :(得分:2)

您需要在/META-INF/MANIFEST.MF manifest file中声明所需的库。如果您查看Adding Classes to the JAR File's Classpath的语法将是:

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

您将如何修改/META-INF/MANIFEST.MF取决于您的JAR打包机制,其中大多数为您提供了自动生成此文件的选项。