java.lang.ClassNotFoundException:org.postgresql.Driver

java.lang.ClassNotFoundException:org.postgresql.Driver,postgresql,netbeans,build,jar,driver,Postgresql,Netbeans,Build,Jar,Driver,每当我将项目构建为jar(通过NetBeans)时,它似乎不包括postgresql驱动程序库。我记得以前在以前版本的NetBeans和驱动程序上没有遇到任何问题。我可以运行以下命令: C:\Users\Username>java -jar "C:\Users\Username\Documents\NetBeansProjects\OrdersImport\dist\OrdersImport.jar" C:\orders\sometextfile.txt 添加postgresql-9.0

每当我将项目构建为jar(通过NetBeans)时,它似乎不包括postgresql驱动程序库。我记得以前在以前版本的NetBeans和驱动程序上没有遇到任何问题。我可以运行以下命令:

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

添加postgresql-9.0-801.jdbc4.jar时,这一行是否应该包括一些额外的内容?我确实在项目中包含了library到lib,如果我直接从NetBeans运行它,它确实可以正常工作。我已经看过我以前的项目,它在那里工作过,似乎一切都一样,可怜的我只是不记得了,请帮忙。

您必须将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

您必须将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

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

因此,您的MANIFEST.MF需要包括以下内容:

类路径: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时必须指定主类。MANIFEST.MF文件中应该有一个引用Postgres驱动程序的条目。需要复制驱动程序,以便可以从真实的jar文件位置访问它

因此,您的MANIFEST.MF需要包括以下内容:

类路径: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时必须指定主类。在使用
-jar
-classpath(或-cp)时,将忽略-classpath(或-cp)在使用
-jar
时被忽略,这是我在MANIFEST.MF:MANIFEST Version:1.0 X-COMMENT:Main类将由build自动添加-这正是我在过去会得到的,但现在由于某些原因它有顽皮的行为:\Main类与类路径无关。类路径条目很重要。我的错误总是很神奇,创建了新项目>复制了所有代码,尝试使用相同的代码和库运行新项目-这次不喜欢库,说了一些关于在给定postgresql-9.0-801.jdbc4.jar时无法打开zip文件的内容,双重检查文件名仍然没有用,下载了jdbc3.jar——而magic就像没有发生什么可怕的事情一样,可以像时钟一样工作。它是否已损坏或不确定,在这种情况下,我真的很沮丧,我可能要在这个行业度过我的一生。这就是我在MANIFEST中的内容。MF:MANIFEST Version:1.0 X-COMMENT:Main类将通过构建自动添加-这正是我在过去得到的,但由于某些原因,它现在有顽皮的行为:\n主类与类路径无关。类路径条目很重要。我的错误总是很神奇,创建了新项目>复制了所有代码,尝试使用相同的代码和库运行新项目-这次不喜欢库,说了一些关于在给定postgresql-9.0-801.jdbc4.jar时无法打开zip文件的内容,双重检查文件名仍然没有用,下载了jdbc3.jar——而magic就像没有发生什么可怕的事情一样,可以像时钟一样工作。它被破坏了还是什么不确定的,在这样的时候,我真的很沮丧,我可能要在这个行业度过我的一生。