Carlos Bruguera [http://community.jboss.org/people/cbruguera] created the 
discussion

"ClassFile write(java.io.DataOutputStream out)  generates empty file!!"

To view the discussion, visit: http://community.jboss.org/message/585764#585764

--------------------------------------------------------------
Hello all, I'm working in a compiler that is generating bytecode, and I wish to 
only use those javassist classes that work with low-level bytecode (Bytecode, 
ClassFile, MethodInfo, FieldInfo, etc.). I'm not interested in high level 
runtime translation of any java code (so I barely need to use CtClass and 
similar).

The thing is I'm creating a ClassFile object, adding a MethodInfo structure, 
based on an existent bytecode object (mainCode) which I know is well built. But 
at the end I'm trying to write the file, and it creates it, but as a 0 byte 
.class file.

Is there anything that I might be missing?.. Here's my piece of code:


ClassFile initClass = getOrCreateClass("InitClass");
declaring = initClass;
 
MethodInfo mainMethod = new MethodInfo(initClass.getConstPool(), "main", 
Descriptor.ofMethod(CtClass.voidType, new CtClass[0]));
mainMethod.setCodeAttribute(mainCode.toCodeAttribute());
mainMethod.setAccessFlags(AccessFlag.PUBLIC);
 
try{
    initClass.addMethod(mainMethod);
}catch(DuplicateMemberException e){
    Errors.add("Definicion duplicada para \"Accion Principal\"");
}
 
writeFile(initClass);


The method getOrCreateClass is successfully instantiating a new ClassFile 
object and returning it.

...Any ideas?
--------------------------------------------------------------

Reply to this message by going to Community
[http://community.jboss.org/message/585764#585764]

Start a new discussion in Javassist at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2062]

_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to