Обсуждение: pgsql-jdbc and Java

Поиск
Список
Период
Сортировка

pgsql-jdbc and Java

От
abdelkader belkadi
Дата:
Hello,
I developped my java project with Java NetBeans IDE,
the code connects to a postgreSQL database using the postgresql-8.1dev-400.jdbc3.jar driver, the project builds and executes correctly when using the IDE, however when trying to use the DOS command line as follow:
D:\java -jar projectpath/projectname.jar
the following error is generated:
Class not found !
java.lang.ClassNotFoundException: org.postgresql.Driver
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Unknown Source)
        at logfilerewriter.Main.connectDb(Main.java:235)
        at logfilerewriter.Main.main(Main.java:45)
I checked the class path, it is correctly set.
The error disapears if I don't call the method that connects to the database, which means that their is no CLASSPATH problem.
 
does somebody has the solution, or met this problem before...?
 
thank you in advance
 
 


Appel audio GRATUIT partout dans le monde avec le nouveau Yahoo! Messenger
Téléchargez le ici !

Re: pgsql-jdbc and Java

От
"Xavier Poinsard"
Дата:
abdelkader belkadi a écrit :
> Hello,
> I developped my java project with Java NetBeans IDE,
> the code connects to a postgreSQL database using the
> postgresql-8.1dev-400.jdbc3.jar driver, the project builds and executes
> correctly when using the IDE, however when trying to use the DOS command
> line as follow:
> D:\java -jar projectpath/projectname.jar
> the following error is generated:
> Class not found !
> java.lang.ClassNotFoundException: org.postgresql.Driver
>         at java.net.URLClassLoader$1.run(Unknown Source)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at java.net.URLClassLoader.findClass(Unknown Source)
>         at java.lang.ClassLoader.loadClass(Unknown Source)
>         at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
>         at java.lang.ClassLoader.loadClass(Unknown Source)
>         at java.lang.ClassLoader.loadClassInternal(Unknown Source)
>         at java.lang.Class.forName0(Native Method)
>         at java.lang.Class.forName(Unknown Source)
>         at logfilerewriter.Main.connectDb(Main.java:235)
>         at logfilerewriter.Main.main(Main.java:45)
> I checked the class path, it is correctly set.
> The error disapears if I don't call the method that connects to the
> database, which means that their is no CLASSPATH problem.

No, it means that there is a class path problem.
Could you triple check your CLASSPATH ?
What if you add " -cp path_to_postgresqldriver.jar " to your command line ?




Re: pgsql-jdbc and Java

От
Oliver Jowett
Дата:
abdelkader belkadi wrote:

> D:\java -jar projectpath/projectname.jar
> the following error is generated:
> Class not found !
> java.lang.ClassNotFoundException: org.postgresql.Driver

> The error disapears if I don't call the method that connects to the
> database, which means that their is no CLASSPATH problem.

A ClassNotFoundException means you *do* have a classpath problem,
whether you like it or not. That exception means that the JVM cannot
find the PostgreSQL JDBC driver class, i.e. it's not in the classpath.

Using -jar has the unexpected behaviour that it makes the JVM completely
ignore any CLASSPATH environment setting. So unless projectname.jar
includes the postgresql driver itself, or references it via manifest
Class-Path, this isn't going to work.

Try an explicit classname and classpath (that includes both the driver
jar and projectname.jar) instead of using -jar.

(also, doesn't the win32/dos JVM expect paths in backslash form? you've
got forward slashes above)

-O

Re: pgsql-jdbc and Java

От
abdelkader belkadi
Дата:

I stored my driver in the lib directory of the JDK.

but I manually moved the driver packages in the packages tree of my IDE, and it seems to be working correctly.

Thanks.

Oliver Jowett <oliver@opencloud.com> a écrit :

abdelkader belkadi wrote:

> D:\java -jar projectpath/projectname.jar
> the following error is generated:
> Class not found !
> java.lang.ClassNotFoundException: org.postgresql.Driver

> The error disapears if I don't call the method that connects to the
> database, which means that their is no CLASSPATH problem.

A ClassNotFoundException means you *do* have a classpath problem,
whether you like it or not. That exception means that the JVM cannot
find the PostgreSQL JDBC driver class, i.e. it's not in the classpath.

Using -jar has the unexpected behaviour that it makes the JVM completely
ignore any CLASSPATH environment setting. So unless projectname.jar
includes the postgresql driver itself, or references it via manifest
Class-Path, this isn't going to work.

Try an explicit classname and classpath (t hat includes both the driver
jar and projectname.jar) instead of using -jar.

(also, doesn't the win32/dos JVM expect paths in backslash form? you've
got forward slashes above)

-O


Appel audio GRATUIT partout dans le monde avec le nouveau Yahoo! Messenger
Téléchargez le ici !