有没有操作 java 源码的工具

就像有些 orm 工具,将数据库表结构生成 POJO 类。我想做的东西需要一个能够读取 java 源码,和生成 java 源码的工具,有人写过这种东西么?搜索我都不知道该搜啥。

生成 java 文件

IDEA 这个工具在这些地方就表现非常出色,比如反编译 class,java 转 kotlin,就是不知道是怎么实现的,是否开源。
目前找到一个 :https://github.com/square/jav...

读取 java 文件

对于一个 java 文件,我想从中获取一些信息,比如那个方法调用了哪个方法之类的,有没有什么工具。

之所以不反编译 class 是因为局部变量名对我也很重要,如果有方便的方法操作字节码也是考虑的范围。

可编程的接口

我这里说的工具不是一个额外的程序,而是能够让我用编程的方式操作 java 文件的工具 jar 包。

阅读 2.7k
3 个回答

1、Java反编译插件 —— Jadclipse

JadClipse是Jad的Eclipse插件,是一款非常实用而且方便地Java反编译插件,我们只需将下载的插件包复制到eclipse的plugins目录下,然后修改window -> Preferences -> Java -> JadClipse 下的Path to decompiler ,如:C:pinjadnt158jad.exe,最后在Windows -> Perference -> General -> Editors -> File Associations中修改“*.class”默认关联的编辑器为“JadClipse Class File Viewer” 即可。

官方网站:http://sourceforge.net/projec...

2、Java反编译工具 jad

jad是一款使用非常广泛地Java反编译工具,上面这款Jadclipse就是基于jad的反编译插件,JAD 文件包含 MIDlet 套件的标题信息,例如开发应用程序的公司、应用程序名称和大小。
官方网站:http://varaneckas.com/jad/

3、Java 反编译器 JD-GUI

JD-GUI 是一个用 C++ 开发的 Java 反编译工具,由 Pavel Kouznetsov开发,支持Windows、Linux和苹果Mac Os三个平台。而且提供了Eclipse平台下的插件JD-Eclipse。JD-GUI不需要安装,直接点击运行,可以反编译jar,class文件。

官方网站:http://jd.benow.ca/

4、Java反编译器 jdec

jdec是一个Java反编译器。它能够把出现在一个.class文件中的字节码还原成Java源代码,反编译的结果几乎与原始Java文件相同。它还自带一个利用swing开发的用户操作界面。

官方网站:http://jdec.sourceforge.net/

5、uuDeJava

uuDeJava是Java Class文件的反编译工具。反编译的Java源程序被输出到Class的相同目录。内部使用jad.exe。反编译Class文件时,可以直接点击Class文件(关联后),或者选中文件或目录发送到uuDeJava的快捷方式。还可以拖动文件或目录到uuDeJava的主窗口。

官方网站:http://www.uuware.com/uudejav...

6、Java 反向工程软件 Minjava

Minjava 是一个 Java 反向工程软件,可帮助理解已存在一些 Java 软件的架构和行为。

官方网站:https://code.google.com/p/min...

7、Java Decompiler

这款反编译器叫 “Java Decompiler”, 由 Pavel Kouznetsov开发,目前最新版本为0.2.5. 它由 C++开发,并且官方可以下载 windows、linux和苹果Mac Os三个平台的可执行程序。

http://www.oschina.net/projec...
http://blog.csdn.net/r3t7o7/a...

jclasslib 可以直接修改class文件

1、java反射
2、cglib
3、asm/javassist

推荐问题