java.lang.ClassNotFoundException:org.postgresql.Driver

时间:2011-03-17 10:35:01

标签: postgresql netbeans build jar driver

每当我将项目构建为jar(通过NetBeans)时,似乎它不包含postgresql驱动程序库。我记得之前在NetBeans和驱动程序的早期版本中没有任何问题。我cmd运行类似:

C:\Users\Username>java -jar "C:\Users\Username\Documents\NetBeansProjects\OrdersImport\dist\OrdersImport.jar" C:\orders\sometextfile.txt

在此行中是否应该包含额外的内容以添加postgresql-9.0-801.jdbc4.jar?我确实在项目内部包含了lib库,如果我直接从NetBeans运行它,它确实可以正常运行。我看过我以前的项目,它确实有效,似乎是一切都一样,可怜我只是记不起来,请帮忙。

2 个答案:

答案 0 :(得分:3)

您的MANIFEST.MF文件中应该有一个引用Postgres驱动程序的条目。并且驱动程序需要复制,以便可以从真正的jar文件位置访问它。

所以你的MANIFEST.MF需要包含这样的内容:

Class-Path:lib / postgresql-9.0-801.jdbc4.jar

如果JDBC驱动程序是NetBeans项目的一部分,NetBeans应该将其复制到dist / lib。

如果您不想更改清单文件(或不能),则需要在命令行上手动引用所有需要的库。但是你不能再使用-jar选项了:

java -cp postgresql-9.0-801.jdbc4.jar;OrdersImport.jar com.mypackage.MyMain C:\orders\sometextfile.txt

请记住,在使用-cp或-classpath

时必须指定主类

答案 1 :(得分:0)

您必须将postgre jar添加到类路径中:

C:\Users\Username>java -classpath "location of postgresql-9.0-801.jdbc4.jar" -jar "C:\Users\Username\Documents\NetBeansProjects\OrdersImpo rt\dist\OrdersImport.jar" C:\orders\sometextfile.txt