gpt4 book ai didi

java - NetBeans MySQL 驱动程序连接错误 dist Jar 文件

转载 作者:行者123 更新时间:2023-11-29 22:10:23 24 4
gpt4 key购买 nike

我正在使用 NetBeans 开发一个程序,该程序使用 PHPMyadmin 连接到 MySQL 在线服务器,通过 NetBeans 运行该程序,它运行得很好,但是当我尝试仅使用项目的“dist”文件夹中的 Jar 文件来运行它时向我抛出一个错误,我将在最后发布它。

我的问题是:

为什么在 NetBeans 中会发生这种情况,但在 dist Jar 文件中却不会?

如何在不使用 NetBeans 的情况下在其他计算机上运行它,只需双击 Jar 文件? (我刚刚在另一台没有 NetBean IDE 的计算机上下载了最新的 java 版本,并且收到了无法连接到 com jdbc mysql 驱动程序的错误)。

感谢您的支持。

这里有一个错误:

Communications link failure due to underlying exception:

** BEGIN NESTED EXCEPTION **

Java.net.ConnectException

MESSAGE: Connection refused: connect

STACKTRACE:

Java.net.ConnectException: Connection refused: connect
At.java.net.DualStackPlainSocketImpl.connect0(Native Method)

At java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)

At java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)

At java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)

At java.net.AbstractPlainSocketImpl.connect (Unknown Source)

At java.PlainSocketImpl.connect(Unknown Source)

At java.net.SocksSocketImpl.connect(Unknown Source)

At java.net.Socket.connect(Unknown Source)

At java.net.Socket<init>(Unknown Source)

At com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:256)

At com.mysql.jdbc.MysqllO.<init>(MysqlIIO.java:271)

...
...

...

最佳答案

这是我的简单测试,在 Netbeans 内部和外部都取得了成功。我使用了常规的 java (Ant) 项目,只是添加了 MySQL JDBC 驱动程序作为库。 (右键单击项目窗口中的“库”图标,添加库并从列表中选择它。)在 mysqlcheck 包中添加以下单个文件作为 MySqlCheck。将 localhost 更改为您的正确主机,将某人更改为您的用户名,mypasswd,将测试更改为您拥有的某个数据库,并将无标题更改为对测试有用的一些小表。由于本示例中的连接 URL 是硬编码的,因此如果您从命令行参数、系统属性或 Netbeans 内部与外部可能不同的其他内容获取连接信息,则可能会解决问题。

如果正确构建,则在 dist 子目录中将是您的 jar,在其 lib 子目录中将是 mysql-connector-java-5.1.23-bin.jar。如果将 jar 移动到 dist 中,则始终需要移动 lib 子目录及其 jar。仅递归压缩整个 dist 目录可能是最好的方法。如果您移动到其他主机,则 localhost 字符串需要更改为实际主机。此外,用户权限和网络设置可能会导致问题,也许管理员必须修复该问题。

该项目也可以从这里克隆:

https://github.com/wshackle/MysqlCheck

要测试打开终端并输入:

java -jar dist/yourproject.jar

package mysqlcheck;

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

/**
*
* @author Will Shackleford {@literal <wshackle@gmail.com> }
*/
public class MysqlCheck {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Connection conn = null;
try {
conn
= DriverManager.getConnection("jdbc:mysql://localhost:3306/test?"
+ "user=somebody&password=mypasswd");
ResultSet rs = conn.createStatement().executeQuery("select * from Untitled;");
ResultSetMetaData meta = rs.getMetaData();
for (int i = 0; i < meta.getColumnCount(); i++) {
System.out.println("i = " + i);
System.out.println("columnName=" + meta.getColumnName(i + 1));
rs.first();
do {
System.out.println("colunmString=" + rs.getString(i + 1));
} while (rs.next());
}
} catch (SQLException ex) {
// handle any errors
System.out.println("SQLException: " + ex.getMessage());
System.out.println("SQLState: " + ex.getSQLState());
System.out.println("VendorError: " + ex.getErrorCode());
} catch (Exception ex) {
// handle any errors
System.out.println("SQLException: " + ex.getMessage());
}
}
}

关于java - NetBeans MySQL 驱动程序连接错误 dist Jar 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31737837/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com