gpt4 book ai didi

java - 当jar存在时出现NoClassDefFoundError,特别是对于mysql-connector-java-8.0.20.jar

转载 作者:行者123 更新时间:2023-12-01 16:38:58 25 4
gpt4 key购买 nike

我想确保我可以使用一个简单的 Java 类连接到本地运行的 MySQL 服务器。

要测试连接,我想使用 MysqlDataSource mysql-connector-java-8.0.20.jar 附带的类

我使用的是 Ubuntu 18.04 LTS,jar 位于:/usr/share/java/mysql-connector-java-8.0.20.jar

然后我运行编译器命令:$ javac -cp "/usr/share/java/mysql-connector-java-8.0.20.jar" App.java

然后:$ java App

并得到以下输出错误:

Exception in thread "main" java.lang.NoClassDefFoundError: com/mysql/cj/jdbc/MysqlDataSource
at App.main(App.java:15)...

$ mysql --version的输出: mysql Ver 14.14 Distrib 5.7.30, for Linux (x86_64) using EditLine wrapper

这就是我的全部App.java文件包含:

import java.sql.Connection;
import java.sql.SQLException;

import com.mysql.cj.jdbc.MysqlDataSource;

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

MysqlDataSource dataSource = new MysqlDataSource();
dataSource.setUser("root");
dataSource.setPassword("test");
dataSource.setServerName("localhost");

Connection conn;
try {
conn = dataSource.getConnection();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}```


最佳答案

您必须指定一个类路径以在运行时包含 jar,而不是 java App。就像,

java -cp "/usr/share/java/mysql-connector-java-8.0.20.jar:." App

关于java - 当jar存在时出现NoClassDefFoundError,特别是对于mysql-connector-java-8.0.20.jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61903307/

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