导出的可运行 Jar - 无法连接到数据库
Exported Runnable Jar - Unable to connect to database
Friends please suggest a solution
我在 Ubuntu 20.04 OS 中使用 eclipse IDE 和 MySql 数据库完成了一个 java swing maven 项目。将项目导出为 Runnable jar(启动配置作为我的主要功能 class,选择的库处理单选按钮是将所需的库提取到生成的 jar 中)。
然后是可运行的jar,我在Windows10OS打开了。双击主 window 打开,我只能从主 window 的菜单栏打开 2 windows 而这两个 window class 没有sql 连接。所有其他 windows 正在连接数据库并且无法打开。
在 widows 10 中,我安装了 MySql 服务器 8.0.22(使用传统身份验证方法保留 MySql 5.x 兼容性)和连接器 j 8.0.22,我可以访问我的数据库使用查询浏览器。
我在我的项目中使用 mysql-connector-java 8.0.22 的 Maven 依赖项。我的连接 Class 如下。`
public class MysqlConnector {
Connection con=null;
public static Connection dbConnector() {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306","sarams", "password");
return con;
}
catch (Exception e) {
return null;
}
}
}
首先确保您已安装所有驱动程序并添加到 maven
Example Using void
public class MysqlConnector {
/**
* Connect to a sample database
*/
public static void connect() {
Connection con = null;
try {
// db parameters, where the database is being stored, so it could access it
String url = "jdbc:mysql://localhost:3306","sarams", "password";
// create a connection to the database
con = DriverManager.getConnection(url);
System.out.println("Connection to mysql has been established.");
} catch (SQLException e) {
System.out.println(e.getMessage());
} finally {
try {
if (con != null) {
con.close();
}
} catch (SQLException ex) {
System.out.println(ex.getMessage());
}
}
}
// establishing connection
public static void main(String[] args) {
connect();
}
使用连接的示例
private Connection connect() {
// MySQL connection string
String url = "jdbc:mysql://localhost:3306","sarams", "password";
Connection con = null;
try {
con = DriverManager.getConnection(url);
} catch (SQLException e) {
System.out.println(e.getMessage());
}
return con;
}
问题已解决,只是java冲突。使用 jdk 11 编译并尝试 运行 JRE 1.8。删除JRE并安装JDK 11,问题解决。
Friends please suggest a solution
我在 Ubuntu 20.04 OS 中使用 eclipse IDE 和 MySql 数据库完成了一个 java swing maven 项目。将项目导出为 Runnable jar(启动配置作为我的主要功能 class,选择的库处理单选按钮是将所需的库提取到生成的 jar 中)。
然后是可运行的jar,我在Windows10OS打开了。双击主 window 打开,我只能从主 window 的菜单栏打开 2 windows 而这两个 window class 没有sql 连接。所有其他 windows 正在连接数据库并且无法打开。
在 widows 10 中,我安装了 MySql 服务器 8.0.22(使用传统身份验证方法保留 MySql 5.x 兼容性)和连接器 j 8.0.22,我可以访问我的数据库使用查询浏览器。
我在我的项目中使用 mysql-connector-java 8.0.22 的 Maven 依赖项。我的连接 Class 如下。`
public class MysqlConnector {
Connection con=null;
public static Connection dbConnector() {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306","sarams", "password");
return con;
}
catch (Exception e) {
return null;
}
}
}
首先确保您已安装所有驱动程序并添加到 maven
Example Using void
public class MysqlConnector {
/**
* Connect to a sample database
*/
public static void connect() {
Connection con = null;
try {
// db parameters, where the database is being stored, so it could access it
String url = "jdbc:mysql://localhost:3306","sarams", "password";
// create a connection to the database
con = DriverManager.getConnection(url);
System.out.println("Connection to mysql has been established.");
} catch (SQLException e) {
System.out.println(e.getMessage());
} finally {
try {
if (con != null) {
con.close();
}
} catch (SQLException ex) {
System.out.println(ex.getMessage());
}
}
}
// establishing connection
public static void main(String[] args) {
connect();
}
使用连接的示例
private Connection connect() {
// MySQL connection string
String url = "jdbc:mysql://localhost:3306","sarams", "password";
Connection con = null;
try {
con = DriverManager.getConnection(url);
} catch (SQLException e) {
System.out.println(e.getMessage());
}
return con;
}
问题已解决,只是java冲突。使用 jdk 11 编译并尝试 运行 JRE 1.8。删除JRE并安装JDK 11,问题解决。