如何将内存中的Java类写入.class文件?

问题描述 投票:3回答:1

在我的应用程序中,我正在使用Class<?>将一些常规文件编译到groovy.lang.GroovyClassLoader。这些类保存在groovy.lang.GroovyClassLoader中,以后使用。

由于此编译在启动时发生,所以启动花费的时间比预期的要长。

是否有一种方法可以将生成的HashMap对象转储到某些Class<?>文件中,并且下次直接从jar中加载类?

因此,我正在寻找一种从内存.class对象中写入.class文件的方法

java classloader
1个回答
0
投票

也许我对这个问题有些迟,但是最近我找到了一种方法。在内部检查代码我内部知道Class<?>使用一个称为GroovyClassLoader的类。您可以像这样使用它

CompilationUnit

然后您可以将字节保存在扩展名为.class和voilá的文件中。您可以将它们压缩为CompilationUnit cu = new CompilationUnit() cu.addSource(compilationUnitName,srcCode) cu.compile() cu.getClasses() //This returns a list of `GroovyClass`es, they contain the //name and the bytecode (byte[]) of the generated classes. 文件,也可以使用.jar方法GroovyClassLoader

加载此类。
© www.soinside.com 2019 - 2024. All rights reserved.