感谢您的帮助,我在这里完全是个菜鸟,但正在努力学习。 下面的代码只是尝试创建与数据库的连接。我收到此错误:
java.lang.ClassNotFoundException: org.postgres.Driver at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at CreateDB.main(CreateDB.java:11) java.lang.ClassNotFoundException: org.postgres.Driver
在网上研究后,我遇到的解决方案是检查库是否已添加到构建路径。我可以确认我有(我认为)。为此,我右键单击项目 -> 属性 -> Java 构建路径 -> 外部 JARS 并导航到位于“...\eclipse-workspace\libraries\”中的 postgresql - 42.41.4..jar 我可以看到该库已添加到项目中引用的库下。 现在我被困住了,没有任何线索。真诚感谢任何帮助。
我从这里学习https://www.tutorialspoint.com/postgresql/postgresql_java.htm
import java.sql.Connection;
import java.sql.DriverManager;
public class CreateDB {
public static void main(String Args[]) {
Connection c = null;
try {
Class.forName("org.postgres.Driver");
c = DriverManager.getConnection("jdbc.postgresql://localhost:1080/VEM", "postgres", "Diablo12" ); //creates connection with U&P
} catch (Exception e) {
e.printStackTrace();
System.err.println(e.getClass().getName() +": " + e.getMessage());
System.exit(0);
}
System.out.println("Database opened successfully");
}
}
最佳答案
正确的驱动程序名称是:org.postgresql.Driver
。所以你的代码应该是这样的:
import java.sql.Connection;
import java.sql.DriverManager;
public class CreateDB {
public static void main(String args[]) {
Connection c = null;
try {
Class.forName("org.postgresql.Driver");
c = DriverManager.getConnection("jdbc.postgresql://localhost:1080/VEM", "postgres", "Diablo12" ); //creates connection with U&P
} catch (Exception e) {
e.printStackTrace();
System.err.println(e.getClass().getName() +": " + e.getMessage());
System.exit(0);
}
System.out.println("Database opened successfully");
}
}
错误的驱动程序名称会导致 java 抛出 ClassNotFoundException
,因为在类路径中找不到具有传递名称的类。
从 Java 6 开始,不再需要通过 Class.forName() 加载驱动程序,例如 a_horse_with_no_name在他的评论中指出。
关于java - org.postgres.Driver 类异常 - 初学者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45857454/