在Mac上,安装了Java12.0.2、postgresql-42.2.8.jar、PostgreSQL 11.5。据我所知,该版本的JDBC驱动程序应该与该版本的PostgreSQL兼容。
我尝试将PG jar文件放在我的/Java/Extensions目录中,并与下面的测试程序放在同一个目录中,甚至还将CLASSPATH设置为我的测试程序目录,但我仍然在运行时为我的测试程序中的Class.forName("org.postgresql.Driver");行获取ClassNotFound:
import java.sql.Connection;
import java.sql.DriverManager;
public class PostgreSQLJDBC {
public static void main(String args[]) {
ClassLoader cl = ClassLoader.getSystemClassLoader();
Connection c = null;
try {
Class.forName("org.postgresql.Driver");
c = DriverManager
.getConnection("jdbc:postgresql://localhost:5432/testdb",
"postgres", "123");
} catch (Exception e) {
e.printStackTrace();
System.err.println(e.getClass().getName()+": "+e.getMessage());
System.exit(0);
}
System.out.println("Opened database successfully");
}
}测试程序直接取自:https://www.tutorialspoint.com/postgresql/postgresql_java.htm
非常感谢您的帮助/建议。谢谢。
发布于 2019-09-18 04:34:09
您的类路径可能需要显式引用postgresql jar文件。这就是我一直在做的。将.jar放在特定目录中可能有一些神奇之处,但我99%确定引用类路径中的随机目录不会遍历.jar文件,只会遍历.class文件。
https://stackoverflow.com/questions/57981416
复制相似问题