Java JDBC驱动程序和终端类路径

Java JDBC驱动程序和终端类路径,java,jdbc,terminal,classpath,Java,Jdbc,Terminal,Classpath,我正在尝试连接到一个通过linux机器上的mysql_工作台创建的sql数据库。我目前使用文本编辑器编写终端代码,因为这是我感到舒服的地方 我的DatabaseConnection类有以下代码,主要是使用System.out.println尝试查找问题原因: final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; final String DB_URL = "jdbc:mysql://localhost:3306/mydb"; final Str

我正在尝试连接到一个通过linux机器上的mysql_工作台创建的sql数据库。我目前使用文本编辑器编写终端代码,因为这是我感到舒服的地方

我的DatabaseConnection类有以下代码,主要是使用
System.out.println
尝试查找问题原因:

final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
final String DB_URL = "jdbc:mysql://localhost:3306/mydb";

final String user = "root";
final String pass = "pass";

Connection connection;
Statement statement;

public DatabaseConnection(){

}

public void connect(){
    System.out.println("Entering method");
    try {
        System.out.println("Attempting to load driver");
        Class.forName(JDBC_DRIVER); 
        System.out.println("Driver Loaded");        
        connection = DriverManager.getConnection(DB_URL, user, pass);
        System.out.println("Connection established");
        statement = connection.createStatement();
        System.out.println(" statement made");
        ResultSet resultSet = statement.executeQuery("show databases");
        System.out.println("statement executed");

        while(resultSet.next()){
            System.out.println(resultSet.next());
        }
        System.out.println("finished printing result set");

        statement.close();
    } catch(ClassNotFoundException ex) {
        System.out.println("Error: unable to load driver class!");
        System.exit(1);
    } catch (SQLException sqle) {
        System.out.println("Connection Error");         
        sqle.getErrorCode();
    }

}
}
我还有一个
Test
类来测试这一点:

class Test {

    public static void main(String[] args){
        DatabaseConnection connection = new DatabaseConnection();
        connection.connect();
    }
}
当前在终端中运行时,我的命令是:

javac -cp .:/lib/mysql-connector-java-5.1.38-bin.jar Test.java
(在包含.java文件的顶部文件夹中,我有一个包含jdbc驱动程序的lib子文件夹)

那很好。接下来,我使用

java -cp .:/lib/mysql-connector-java-5.1.38-bin.jar Test
我得到以下错误:

java -cp .:/lib/mysql-connector-java-5.1.38-bin.jar Test
Entering method
Attempting to load driver
Error: unable to load driver class!
因此,看起来它没有在
Class.forName()方法中加载驱动程序,并且失败了。有人能帮忙解释一下原因和可能的解决办法吗


在mysql_workbench中,我认为数据库已经启动并运行,因为我可以在workbench query命令行中查询它,以显示当前为空的数据库和表。

Java无法找到mysql JDBC驱动程序的JAR文件,因为

java-cp.:/lib/mysql-connector-java-5.1.38-bin.jar测试
指定两个(冒号分隔)位置:

  • /lib/mysql-connector-java-5.1.38-bin.jar
  • 第二个位置被解释为绝对路径。要将其解释为相对路径,它应以句点(
    )开始,即

    java-cp.:./lib/mysql-connector-java-5.1.38-bin.jar测试
    
    也许可以尝试在冒号和斜杠之间添加一个句点,例如,
    java-cp.:/lib/…
    ?谢谢,它已连接。贴出来作为答案,我会指给你看。非常感谢!!只是附带说明:不再需要使用
    Class.forName
    加载JDBC驱动程序,Java将自动将驱动程序加载到类路径中的一个。