Programmatically inspect .class files

后端 未结 6 2039
爱一瞬间的悲伤
爱一瞬间的悲伤 2020-12-31 07:30

I\'m working on a project where we\'re doing a lot of remote object transfer between a Java service and clients written in other various languages. Given our current constra

相关标签:
6条回答
  • 2020-12-31 08:02

    I'm shocked that no one has mentioned ASM yet. It's the best bytecode library your money can buy. Well, ok it's free.

    0 讨论(0)
  • 2020-12-31 08:07

    JAD is a java decompiler that doesn't allow programmatic access. It isn't readily available anymore, and probably won't work for newer projects with Java7 bytecodes.

    0 讨论(0)
  • 2020-12-31 08:08

    I have used BCEL in the past and it was pretty easy to use. It was a few years ago so there may be something better now.

    Apache Jakarta BCEL

    0 讨论(0)
  • I've used BCEL and find it really quite awkward. ASM is much better. It very extensively uses visitors (which can be a little confusing) and does not create an object model. Not creating an object model turns out to be a bonus, as any model you do want to create is unlikely to look like a literal interpretation of all the data.

    0 讨论(0)
  • 2020-12-31 08:11

    From your description, it sounds like simple reflection would suffice. You can discover all of the static structure of the class, as well as accessing the fields of a particular instance.

    I would only move on to BCEL if you are trying to translate method instructions. (And if that's what you're trying to automate, good luck!)

    0 讨论(0)
  • 2020-12-31 08:20

    I think javassist might help you too.

    http://www.jboss.org/javassist/

    I have never had the need of using it, but if you give it a try, would you let us know your comments about it?

    Although I think it is more for bytecode manipulation than .class inspection.

    0 讨论(0)
提交回复
热议问题