You are viewing a plain text version of this content. The canonical link for it is here.
Posted to bcel-user@jakarta.apache.org by gaurav shankar <sh...@hotmail.com> on 2003/04/04 08:25:05 UTC
Re: class to JavaClass file : Cant create javaClass for rmi lib files
Thanks for that I modified the code the way you advised and i tried to
create javaClass for some rmi files it it fails to do that.Im not sure why,
do you have any idea.
Once again Thanks for your help , that really helped me a lot.
Regards
Gaurav Shankar
MS , CS Deptt
Rutgers Univ
>From: "Juozas Baliuka" <ba...@mwm.lt>
>Reply-To: "BCEL Users List" <bc...@jakarta.apache.org>
>To: "BCEL Users List" <bc...@jakarta.apache.org>
>Subject: Re: class to JavaClass file
>Date: Wed, 2 Apr 2003 12:39:22 +0200
>
>
>----- Original Message -----
>From: "gaurav shankar" <sh...@hotmail.com>
>To: <bc...@jakarta.apache.org>
>Sent: Wednesday, April 02, 2003 4:41 AM
>Subject: Re: class to JavaClass file
>
>
> > Hi,
> > This is a part of my ClassLoader , at the end of this section I have
>result
> > ( an instance of Class ) which gets bytecode of system classes, I want
>to
> > convert this into JavaClass. "object" in your example is an instance of
> > Class or shall I say object and result of same type ..
> >
> >
> > public synchronized Class loadClass(String className, boolean resolveIt)
> > throws ClassNotFoundException {
> > Class result;
> > byte classData[];
> > JavaClass java_class;
> >
> > System.out.println(" >>>>>> Load class : "+className);
> >
> > /* Check our local cache of classes */
> > result = (Class)classes.get(className);
> > if (result != null) {
> > System.out.println(" >>>>>> returning cached
>result.");
> > return result;
> > }
> >
> > /* Check with the primordial class loader */
> > try {
> > // result = super.findSystemClass(className);
>
> //find class file as "SystemResource" and parse it:
> InputStream is =
>ClassLoader.getSystemResourceAsStream(className.replace('.','/') +
>".class");
> JavaClass jcls = new ClassParser(is,className).parse();
>
> > // >> I WANT TO CONVERT THIS result TO JavaClass <<<<
> byte bytes[]= jcls.getBytes();
> return defineClass(bytes,0,bytes.length);
> //possible it will work for system clsses, I have never tried it.
>//you will have two class versions, one in "bootstrap" classloder and one
>in
>your classloder.
>//JNI and JVM hooks are designed for this use case.
>
> >
> > } catch (ClassNotFoundException e) {
> > System.out.println(" >>>>>> Not a system class.");
> > }
> >
> >
> >
> > Thanks for your help , I really appreciate it
> >
> > Regards
> > Gaurav Shankar
> >
> >
> >
> >
> >
> > >From: "Juozas Baliuka" <ba...@centras.lt>
> > >Reply-To: "BCEL Users List" <bc...@jakarta.apache.org>
> > >To: "BCEL Users List" <bc...@jakarta.apache.org>
> > >Subject: Re: class to JavaClass file
> > >Date: Tue, 1 Apr 2003 08:11:26 +0200
> > >
> > >
> > >You can load class file as resource with system classloader, but you
>can
> > >not
> > >to define it twice in the same classloader:
> > >
> > > JavaClass jclass = new
> >
> >ClassParser(Object.class.getResource(Object.class.getName().replace('.','/'
>)
> > >+ ".class")),Object.class.getName());
> > >
> > >
> > > > What I am trying to do is change in constant pool of every class my
> > > > application loads (not all but that also includes some library
>classes )
> > >for
> > > > that im trying to change instance of Class that findSystemClass()
> > >returns
> > > > into that of JavaClass so that I can change in the constant pool and
> > >then
> > > > use defineClass on it. ClassParser converts DataInputStream into
> > >JavaClass,
> > > > how can I make it to change Class into JavaClass.
> > > >
> > > > Thanks
> > > > Gaurav Shankar
> > > > CS Deptt , Rutgers University
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > >From: "Juozas Baliuka" <ba...@mwm.lt>
> > > > >Reply-To: "BCEL Users List" <bc...@jakarta.apache.org>
> > > > >To: "BCEL Users List" <bc...@jakarta.apache.org>
> > > > >Subject: Re: class to JavaClass file
> > > > >Date: Mon, 31 Mar 2003 17:25:44 +0200
> > > > >
> > > > >
> > > > >Sometimes it can work on system classes too,
> > > > >classloader can not define system class, but you can try depricated
> > > > >"defineClass(byte[] b, int pos, int len)" method, I am not sure
>this
> > >will
> > > > >work for classes like Object or String,
> > > > >and it is no way to define classes for arrays.
> > > > >
> > > > >
> > > > > > Hi,
> > > > > > Im trying my class loader with BCEL, Im looking Constant pool of
> > >each
> > > > >class
> > > > > > used by my application, even system classes, for that I need to
> > >convert
> > > > > > class file ( which I get as result of findSystemClass() ) and
> > >convert
> > >it
> > > > >to
> > > > > > JavaClass file.
> > > > > >
> > > > > >
> > > > > > regards
> > > > > >
> > > > > > Gaurav Shankar
> > > > > >
> > > > > >
>_________________________________________________________________
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > >---------------------------------------------------------------------
> > > > > > To unsubscribe, e-mail: bcel-user-unsubscribe@jakarta.apache.org
> > > > > > For additional commands, e-mail:
>bcel-user-help@jakarta.apache.org
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> >---------------------------------------------------------------------
> > > > >To unsubscribe, e-mail: bcel-user-unsubscribe@jakarta.apache.org
> > > > >For additional commands, e-mail: bcel-user-help@jakarta.apache.org
> > > > >
> > > >
> > > >
> > > > _________________________________________________________________
> > > >
> > > >
> > > >
> > > >
>---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: bcel-user-unsubscribe@jakarta.apache.org
> > > > For additional commands, e-mail: bcel-user-help@jakarta.apache.org
> > > >
> > >
> > >
> > >---------------------------------------------------------------------
> > >To unsubscribe, e-mail: bcel-user-unsubscribe@jakarta.apache.org
> > >For additional commands, e-mail: bcel-user-help@jakarta.apache.org
> > >
> >
> >
> > _________________________________________________________________
> > VrroooomÂ…Â… Fasten your seatbelts.
> > http://server1.msn.co.in/msnSpecials/formula2003/index.asp Get set for
>F1
> > 2003
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: bcel-user-unsubscribe@jakarta.apache.org
> > For additional commands, e-mail: bcel-user-help@jakarta.apache.org
> >
> >
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: bcel-user-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: bcel-user-help@jakarta.apache.org
>
_________________________________________________________________
War on Iraq. See latest update.
http://server1.msn.co.in/completecoverage/bushvssaddam/ News, views and more
---------------------------------------------------------------------
To unsubscribe, e-mail: bcel-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: bcel-user-help@jakarta.apache.org