java.lang.ClassNotFoundException: org.postgresql.Driver - PullRequest
0 голосов
/ 17 марта 2011

Всякий раз, когда я собираю свой проект в виде 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?Я включил библиотеку в lib внутри проекта, и она работает без проблем, если я запускаю ее непосредственно из NetBeans.Я посмотрел на свой предыдущий проект, где он работал, кажется, все то же самое, жалкое, я просто не могу вспомнить, помогите, пожалуйста.

Ответы [ 2 ]

3 голосов
/ 17 марта 2011

В вашем файле 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

0 голосов
/ 17 марта 2011

Вы должны добавить postgre jar к вашему classpath:

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
...