我正在用NetBeans开发一个程序,它使用PHPMyadmin连接到一个MySQL在线服务器,通过NetBeans运行这个程序,它工作得非常好,但是当我尝试使用项目“dist”文件夹中的Jar文件运行它时,会抛出一个错误,我将在最后发布它。
我的问题是:
为什么在NetBeans works中发生这种情况,而在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)
...
...
...
这是我的简单测试,在Netbean内部和外部都成功了。除了添加了MySQL JDBC驱动程序作为库之外,我使用了一个普通的java(ant)项目。(右键单击项目窗口中的库图标,添加库,并从列表中选择它。)在mysqlcheck包中添加以下单个文件作为MySqlcheck。将localhost更改为您的正确主机,将某人更改为您的用户名,myPasswd,将测试更改为您拥有的某些数据库,将未命名更改为一些对测试有用的小表。由于连接url在本例中是硬编码的,如果您从命令行参数、系统属性或其他可能在Netbean内部和外部不同的东西中获取连接信息,它可能会解决一个问题。
如果它在dist子目录中正确构建,那么它将是您的jar,在它的lib子目录中,它将是mysql-connector-java-5.1.23-bin.jar。如果在dist中移动jar,则始终需要移动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());
}
}
}
问题内容: 我目前正在为大学的一个班级做项目。我正在学习有关连接和操作数据库的信息,我们正在使用Microsoft .accdb文件。 这是我到目前为止所拥有的。 当寻找“ sun.jdbc.odbc.JdbcOdbcDriver”时,我得到以下输出。 似乎很容易解决。看来我想念司机或类似的东西。但是,我很难找到解决方法。JDK随附驱动程序吗?我需要单独下载吗?是否取决于我的操作系统?(Mac O
我的java代码使用com.mongodb.DB的单个实例连接到mongo DB。现在我使用这个db实例跨越500个线程,这些线程对我的db执行命令。所有这些都并行运行。以下是conf参数: 现在,如果我使用“db.serverStatus().connections”检查我的数据库,我会得到以下结果:“current”:52,“available”:19999,“totalCreated”:Nu
我试图理解Datastax Cassandra驱动程序中的连池,因此我可以更好地在我的Web服务中使用它。 我有留档的1.0版。它说: Java驱动程序异步使用连接,因此可以在同一个连接上同时提交多个请求。 他们通过连接理解什么?当连接到集群时,我们有:一个生成器、一个集群和一个会话。他们中的哪一个是连接? 例如,有一个参数: MaxSimultaneousRecestsPerConnection
服务器上的mongodb版本将比驱动程序版本旧。我的java驱动程序版本是3.6,Mongo-版本显示我是2.4 我该怎么解决这个问题?
我有这个文件test.py: 我想使用此python代码从页面获取页面源。我使用的是chrome驱动程序selenium和python。但是当我启动这个脚本时,我遇到了这个错误: 我在互联网上尝试了几乎所有的解决方案,但每次我遇到其他错误时,有人知道我在这种情况下应该怎么做吗?有人建议我如何解决这个问题吗?
这是我在运行上述程序时遇到的错误。有人解决了这个问题吗? 我尝试过改变Selenium和ChromeDriver的版本,但没有任何效果。