【问题标题】:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver if the project built into jarjava.lang.ClassNotFoundException: com.mysql.jdbc.Driver 如果项目内置到 jar
【发布时间】:2018-11-05 19:17:17
【问题描述】:

我让我的项目使用了 NetBeans,当我通过 NetBeans 运行它时,它可以正常运行而完全没有任何错误。 但是,当我将它构建成一个 jar 文件并尝试登录到我的应用程序时,我收到一个错误:

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 在 java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)

在 cmd 中:

我一直在做this 教程,但它不起作用。 我已阅读并遵循与此网站和其他网站上的问题类似的教程,但对我没有任何帮助。

这是我的图书馆:

这是我的代码

 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 的项目:

这是我在构建项目时生成的文件夹“dist/lib”中的库

【问题讨论】:

  • 你可以用你的jar打包所有的依赖或者设置lib路径
  • 你的意思是,在类路径中设置?
  • 谢谢,已经解决了

标签: java netbeans netbeans-8


【解决方案1】:

您需要在/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 打包机制,其中大多数为您提供了自动生成此文件的选项。

【讨论】:

    猜你喜欢
    • 2012-01-27
    • 2016-02-04
    • 2011-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-03
    相关资源
    最近更新 更多