GCJ's URLClassloader and 'core' protocol

Sal gcj@svf.dreamhost.com
Mon Jun 28 19:37:00 GMT 2004


Tom Tromey wrote:
> Andrew> I've never thought about it, to tell you the truth. It would be
> Andrew> troublesome to use, because the linker automatcially discards
> Andrew> unreferenced classes when building an executable. You might as well
> Andrew> put stuff into a shared library.
>> We talked about this a little a while back. Well, not exactly this,
> but the idea of loading a given shared library just once and then
> creating several class instances, from different class loaders,
> referring to the same object code.
>> I think the conclusion was that this would make the code more
> inefficient by requiring another load to find the otable, or perhaps
> impossible due to PIC considerations I didn't quite follow.

Maybe you can shed a little light on this for me.
I may be wrong on this... but from what I can gather, the only 
difference between a class loaded by the primordial classloader and one 
loaded by a custom classloader, is some 'tag' that ties each class with 
the class loader that loaded it. So, when that class requests to create 
another class (ie. via 'new'), its classloader would get the first poke 
at it. I think this is standard behavior for Java apps.
I haven't seen/understood much of the GCJ internals yet, but if GCJ 
could just 'tag' certain classes as being loaded by a classloader other 
than the system classloader, it would fix my problem.
In other words a statically linked class would be internally 
loaded/referenced the same way that it is now... but just made to 
reference an arbitrary classloader. Would I be wrong in guessing that 
its just a pointer that needs to be set to point to a different object?
- Sal


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /