parsing java files
stéphane bard
stephane_bard at tele2.fr
Sun Sep 24 06:02:00 EDT 2006
i use javaclass and it's great !!
this is what i need. thank's paul
gabriel thank's too for advice
Paul Boddie a écrit :
> stéphane bard wrote:
>> hello
>> i would like to parse java files an detect
>> class name's, attributes name's type's and visibility (and or list of
>> methods).
>>
>> is there any module who can parse easily a java file without using
>> (jython)?
>
> There are probably a number of standard parser solutions which can
> expose such information. However, another solution is that provided by
> the javaclass package:
>
> import javaclass.classfile # http://www.python.org/pypi/javaclass
>
> # Read the contents of the compiled class.
>
> f = open("org/w3c/dom/Element.class", "rb")
> s = f.read()
> f.close()
>
> # Process the class data.
>
> c = javaclass.classfile.ClassFile(s)
>
> # Obtain the internal name of the class.
>
> name = unicode(c.interfaces[0].get_name()) # u'org/w3c/dom/Node'
> for m in c.methods:
>
> # Obtain each method name and access details.
>
> method_name = unicode(m.get_name()) # eg. u'getTagName'
> is_public = m.access_flags & javaclass.classfile.PUBLIC
>
> Obviously, this is more convoluted than it needs to be, but the
> original purpose of the module employed is to assist in translating
> Java class data to other forms - notably Python bytecode - although
> such experiments haven't been continued by myself for quite some time.
> The class decoding part illustrated above should be quite usable,
> however.
>
> Paul
>
More information about the Python-list
mailing list