在我的应用程序中,我正在使用Class<?>
将一些常规文件编译到groovy.lang.GroovyClassLoader
。这些类保存在groovy.lang.GroovyClassLoader
中,以后使用。
由于此编译在启动时发生,所以启动花费的时间比预期的要长。
是否有一种方法可以将生成的HashMap
对象转储到某些Class<?>
文件中,并且下次直接从jar中加载类?
因此,我正在寻找一种从内存.class
对象中写入.class
文件的方法
也许我对这个问题有些迟,但是最近我找到了一种方法。在内部检查代码我内部知道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