【问题标题】:database connection not working in jar, but does work in eclipse数据库连接在 jar 中不起作用,但在 eclipse 中起作用
【发布时间】:2011-09-09 00:12:02
【问题描述】:

我在 MYSQL 中创建了一个简单的数据库,我试图从用 Eclipse 编写的 java 程序中提取数据。当我在eclipse中运行程序时,它可以很好地提取数据,但是当我将程序导出到可运行的JAR中时,它就不起作用了!!

我已经通过使用构建路径中的“添加外部存档”功能添加了 mysql 连接器,并使用

检查了它的存在
System.out.println("classpath = " + System.getProperty("java.class.path"));

它给出了结果: 类路径 = C:\Users\Andy\workspace\test2\bin;C:\Users\Admin\Desktop\mysql-connector-java-5.1.16\mysql-connector-java-5.1.16-bin.jar

我也打开了导出的JAR文件,看到已经添加了连接器。

这是我正在使用的代码:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;

import javax.swing.JOptionPane;



public class test
{
    public static void main(String args[])
{
    try
    {

        Class.forName("com.mysql.jdbc.Driver").newInstance();

        Connection dbConn = DriverManager.getConnection("jdbc:mysql://localhost:3306/cambridge","root","P@ssw0rd");
        System.out.println("classpath = " + System.getProperty("java.class.path"));

        Statement stmt = dbConn.createStatement();

        String strSQL = "Select * from customer_details";

        ResultSet rs = stmt.executeQuery(strSQL);

        ResultSetMetaData rsmd = rs.getMetaData(); 

        int nCol = rsmd.getColumnCount();

        while(rs.next())
        {
            for(int col=1; col<=nCol; col++)  
            {
                System.out.print(rs.getString(col));
                JOptionPane.showMessageDialog(null, rs.getString(col));
            }

            System.out.println();
        }

        System.out.println();

        dbConn.close();  
    }
    catch (Exception excp)
    {
        excp.printStackTrace();
    }
}
}

提前感谢您提供的任何帮助!!!

【问题讨论】:

  • “它就是行不通!!”是什么意思?当然,如果发生故障,就会产生堆栈跟踪。
  • 您看到的异常是什么?
  • 不,没有任何结果。我尝试打开 JAR 文件,它想了一会儿(圆圈图标出现)然后什么也没有。我尝试了一组不同的代码,在按下按钮后连接到数据库,程序加载,但同样,当你按下按钮时,什么也没有发生!
  • 对不起,没有异常显示。从字面上看,什么都不会发生。我已经尝试对此进行研究,遇到类似问题的每个人都提到确保类路径是正确的。我很确定我已经完成了这部分,所以我现在不知道该尝试什么!
  • 您是否尝试过删除 JOptionPane 并从控制台运行它?

标签: java mysql eclipse database-connection


【解决方案1】:

终于明白了!!!

我做了以下事情:

Window -> Preferences -> Java -> Build Path -> Classpath Variables

然后点击新建,输入名称,然后点击文件并导航到mysql连接器,然后点击确定!!

不完全确定为什么会这样,但是当我做了几乎相同的事情时,但对于一个单独的项目没有,但它确实有效,这就是主要的事情!!

感谢所有回复并为我提供帮助的人。我花了一段时间,但我终于到了那里!! :o)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-24
    • 2013-10-31
    • 2016-04-28
    • 1970-01-01
    • 1970-01-01
    • 2013-05-09
    • 2014-12-27
    • 1970-01-01
    相关资源
    最近更新 更多