From: Mike Schilling on
"Pif - 34" <fj(a)nospam.fr> wrote in message
news:4c0ab15e$0$32742$426a34cc(a)news.free.fr...
> I've replaced " Class.forName("oracle.jdbc.driver.OracleDriver"); "
> by oracle.jdbc.driver.OracleDriver oracleDriver = null;
>
> and this works perfectly. So my Jar is well placed, this seems to be an
> error with the ClassLoader of tomcat !?

If that's a local variable, I'm not sure it causes the class to be loaded.

From: Alessio Stalla on
On Jun 9, 5:05 am, "Mike Schilling" <mscottschill...(a)hotmail.com>
wrote:
> "Pif - 34" <f...(a)nospam.fr> wrote in messagenews:4c0ab15e$0$32742$426a34cc(a)news.free.fr...
>
> > I've replaced "  Class.forName("oracle.jdbc.driver.OracleDriver"); "
> > by oracle.jdbc.driver.OracleDriver oracleDriver = null;
>
> > and this works perfectly. So my Jar is well placed, this seems to be an
> > error with the ClassLoader of tomcat !?
>
> If that's a local variable, I'm not sure it causes the class to be loaded..

If I'm not mistaken, the class should be loaded because it's
referenced in the constant pool, but it will be "initialized" only
when you access it in some way (create an instance, access a static
member). "Initialized" is not the correct term, by that I mean that
static code blocks are executed and static fields are initialized.
From: Lew on
Alessio Stalla wrote:
> If I'm not mistaken, the class should be loaded because it's
> referenced in the constant pool, but it will be "initialized" only
> when you access it in some way (create an instance, access a static
> member). "Initialized" is not the correct term, by that I mean that
> static code blocks are executed and static fields are initialized.

You're not mistaken and "initialized" is the correct term.

--
Lew
From: Mike Schilling on


"Alessio Stalla" <alessiostalla(a)gmail.com> wrote in message
news:96618c26-6576-4673-9f64-932af68bece5(a)e5g2000yqn.googlegroups.com...
> On Jun 9, 5:05 am, "Mike Schilling" <mscottschill...(a)hotmail.com>
> wrote:
>> "Pif - 34" <f...(a)nospam.fr> wrote in
>> messagenews:4c0ab15e$0$32742$426a34cc(a)news.free.fr...
>>
>> > I've replaced " Class.forName("oracle.jdbc.driver.OracleDriver"); "
>> > by oracle.jdbc.driver.OracleDriver oracleDriver = null;
>>
>> > and this works perfectly. So my Jar is well placed, this seems to be an
>> > error with the ClassLoader of tomcat !?
>>
>> If that's a local variable, I'm not sure it causes the class to be
>> loaded.
>
> If I'm not mistaken, the class should be loaded because it's
> referenced in the constant pool, but it will be "initialized" only
> when you access it in some way (create an instance, access a static
> member). "Initialized" is not the correct term, by that I mean that
> static code blocks are executed and static fields are initialized.

I just tried it.

A.java

class A
{
public static void main(String[] arrs)
{
B b = null;
System.out.println("Hello, world");
}
}

Runs fine after deleting B.class

From: Lew on
"Pif - 34" wrote:
>>>> I've replaced "  Class.forName("oracle.jdbc.driver.OracleDriver"); "
>>>> by oracle.jdbc.driver.OracleDriver oracleDriver = null;
>>>>
>>>> and this works perfectly. So my Jar is well placed, this seems to be an
>>>> error with the ClassLoader of tomcat !?
>

Whatever the problem is, it's not an error with Tomcat's classloader.

--
Lew