java - 如何从文件系统加载任意 java .class 文件并对其进行反射(reflect)?

标签 java reflection code-generation classloader introspection

我想制作一个命令行实用程序,它根据外部类文件的反射执行一些操作。我将传递 .class 文件或源文件的路径(可能是通配符)。在执行过程中的某个时刻,我需要获取每个类的 Class 对象,而事先不知道它们的包名称。要做到这一点需要什么?我可以看什么来开始?我还可以访问这些类的源文件。

这是在 java 1.6 中。

另外,使用 java 编译器 API 从源代码获取类对象会更容易吗?

最佳答案

您需要创建一个 ClassLoader并使用defineClass创建 Class从你读过的文件中。 Add dynamic Java code to your application阅读此类内容很有趣,它甚至描述了源代码的编译。

关于java - 如何从文件系统加载任意 java .class 文件并对其进行反射(reflect)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3103634/

相关文章:

java - java中使用泛型类型代替反射来创建实例

ios - 为什么 Xcode 会为我的模型类的 bool 属性生成一个 NSNumber 属性?

java - NoSuchMethodError : org. hibernate.SessionFactory.openSession()

java - OutOfMemoryError (GC overhead limit exceeded) 但仍有大量空闲空间

.net - 使用 .NET 反射的私有(private)方法。为什么?

java - 无法通过java反射调用方法: NoSuchMethodException

c - 在汇编中编写 JIT 编译器

winforms - 如何将 Designer 生成类的基类从 System.Windows.Forms.Form 更改为我自己的 BaseForm

java - 数据库切换后 Eclipse Hibernate 工具不再工作

java - 调用gdb调试java程序