每当我将项目构建为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运行它,它确实可以正常运行。我看过我以前的项目,它确实有效,似乎是一切都一样,可怜我只是记不起来,请帮忙。
答案 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