加载postgreSQL JDBC驱动程序

我正在尝试为Java程序加载JDBC postgreSQL驱动程序。 我知道这是在互联网上。 我尝试了很多解决方案,但没有一个能为我工作。

问题是我收到此错误:

Exception in thread "main" java.lang.NoClassDefFoundError: classes/com/freire/test/JDBCExample/class Caused by: java.lang.ClassNotFoundException: classes.com.freire.test.JDBCExample.class at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 

我的代码看起来像这样:

 package com.freire.test; import java.sql.DriverManager; import java.sql.Connection; import java.sql.SQLException; public class JDBCExample { public static void main(String[] argv) { System.out.println("JDBC Connection Testing"); try { Class.forName("org.postgresql.Driver"); } catch (ClassNotFoundException e) { System.out.println("PostgreSQL JDBC Driver not included!"); } } } 

我的项目结构如下:

 myProject src com freire test JDBCExample.java classes com freire test JDBCExample.class lib postgresql-9.2-1003.jdbc3.jar 

编译工作正常:

 java -d classes/ src/com/freire/test/JDBCExample.java 

但执行会产生错误:

 java classes/com/freire/test/JDBCExample 

值得一提的是,我正在开发OS X Mountain Lion。

任何帮助将不胜感激。

首先,您需要提及包名称. 而不是/在运行java程序时:

转到classes目录并运行JDBCExample:

 java com.freire.test.JDBCExample 

但它现在会因为没有找到postgres驱动程序类而哭泣,因为类路径中缺少postgres jar。因此,您需要在运行程序时使用classpath选项并将postgres jar添加到类路径中:

对于Windows:

 java -cp .;../lib/postgresql-9.2-1003.jdbc3.jar com.freire.test.JDBCExample 

对于linux:

 java -cp .:../lib/postgresql-9.2-1003.jdbc3.jar com.freire.test.JDBCExample 

在Linux上执行以下命令:

javac -cp’。:postgresql-9.1-901.jdbc4.jar’postgresjavatest.java

java -cp’。:postgresql-9.1-901.jdbc4.jar’postgresjavatest

它将为您提供jdbc驱动程序。 确保jar文件位于同一位置

在编译和运行程序时,需要确保postgresql-9.2-1003.jdbc3.jar在类路径中

尝试使用

 javac -cp lib/postgresql-9.2-1003.jdbc3.jar -d classes/ src/com/freire/test/JDBCExample.java 

编译应用程序和

 java -cp lib/postgresql-9.2-1003.jdbc3.jar;./classes com.freire.test.JDBCExample 

运行它…

nb正如Juned所指出的,从技术上讲,你不需要类路径中的lib/postgresql-9.2-1003.jdbc3.jar引用,但是考虑它是如何在复杂化过程中包含编译时依赖性的演示;)