我想确保我可以使用一个简单的 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/