Thread: I just can't use the org.postgresql.Driver class... Please help!

I just can't use the org.postgresql.Driver class... Please help!

From
Kamal
Date:
Hi everybody.
Thi is my first time trying to use postgresql jdbc and I'm very frustrated.

This is my env:

C:\>java -version
java version "1.5.0_06"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
Java HotSpot(TM) Client VM (build 1.5.0_06-b05, mixed mode, sharing)

I have these files in the same directory:

Simple source file (JasperReportsTest.java):

public class JasperReportsTest
{
   public static void main(String[] args)
   {

   Class.forName("org.postgresql.Driver");

   }
}

Simple batch file to compile it (JasperReportsTest.bat):

set CLASSPATH=postgresql-8.1-405.jdbc3.jar
javac JasperReportsTest.java > javac.log 2>&1


Simple log file making me crazy (javac.log):

JasperReportsTest.java:6: unreported exception
java.lang.ClassNotFoundException; must be caught or declared to be
thrown
   Class.forName("org.postgresql.Driver");
                ^
1 error

Obviously the file postgresql-8.1-405.jdbc3.jar is there...

Why does it say ClassNotFound if the file is there? Can anyone help me?
Thank you : )

--
Kamal

Re: I just can't use the org.postgresql.Driver class... Please help!

From
Jan de Visser
Date:
On Wednesday 05 April 2006 14:53, Kamal wrote:
> Simple log file making me crazy (javac.log):
>
> JasperReportsTest.java:6: unreported exception
> java.lang.ClassNotFoundException; must be caught or declared to be
> thrown
>    Class.forName("org.postgresql.Driver");
>                 ^
> 1 error
>
> Obviously the file postgresql-8.1-405.jdbc3.jar is there...
>
> Why does it say ClassNotFound if the file is there? Can anyone help me?
> Thank you : )

Well, the class is there at *compile time*. What this is telling you is that
at *runtime* Class.forName() will fail with that exception if the class is
not available *at runtime*. You need to catch the exception, like so:

try {
  Class.forName( "org.postgresql.Driver" );
} catch ( ClassNotFoundException cnfe ) {
  System.err.println( "driver not found!" );
}


I would recommend an introductory Java text.

jan


--
--------------------------------------------------------------
Jan de Visser                     jdevisser@digitalfairway.com

                Baruk Khazad! Khazad ai-menu!
--------------------------------------------------------------

Re: I just can't use the org.postgresql.Driver class... Please help!

From
"Guy Rouillier"
Date:
Kamal wrote:
> Hi everybody.
> Thi is my first time trying to use postgresql jdbc and I'm very
> frustrated.
>
> This is my env:
>
> C:\>java -version
> java version "1.5.0_06"
> Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
> Java HotSpot(TM) Client VM (build 1.5.0_06-b05, mixed mode, sharing)
>
> I have these files in the same directory:
>
> Simple source file (JasperReportsTest.java):
>
> public class JasperReportsTest
> {
>    public static void main(String[] args)
>    {
>
>    Class.forName("org.postgresql.Driver");
>
>    }
> }
>
> Simple batch file to compile it (JasperReportsTest.bat):
>
> set CLASSPATH=postgresql-8.1-405.jdbc3.jar
> javac JasperReportsTest.java > javac.log 2>&1
>
>
> Simple log file making me crazy (javac.log):
>
> JasperReportsTest.java:6: unreported exception
>    java.lang.ClassNotFoundException; must be caught or declared to be
>                 thrown Class.forName("org.postgresql.Driver"); ^
> 1 error
>
> Obviously the file postgresql-8.1-405.jdbc3.jar is there...
>
> Why does it say ClassNotFound if the file is there? Can anyone help
> me? Thank you : )

Try providing it with a path to the jar file instead of just the jar
file name: ./postgresql-8.1-405.jdbc3.jar.  Might as well add the
current directory to that so it doesn't complain about the source file
you're trying to compile.

--
Guy Rouillier


Re: I just can't use the org.postgresql.Driver class... Please help!

From
"Andres Olarte"
Date:
You must catch an Exception that *might* be thrown, in this case it's
ClassNotFoundException.

Change:

public static void main(String[] args)
  {

  Class.forName("org.postgresql.Driver");

  }

to

public static void main(String[] args)
  {
try {
  Class.forName("org.postgresql.Driver");
} catch (ClassNotFoundException e ){
}

  }


This way it'll compile.  This has nothing to do with JDBC, this is
basic Java stuff.