gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 07:52:21 27 4
gpt4 key购买 nike

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

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

有没有办法转储生成的 Class<?>反对一些.class文件,下次直接从 jar 加载类?

所以我正在寻找一种写.class的方法内存中的文件 Class<?>对象

最佳答案

也许我问这个问题有点晚了,但我最近找到了一种方法。检查内部代码 我知道 GroovyClassLoader 在内部使用了一个名为 CompilationUnit 的类。你可以这样使用它

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.

然后您可以将字节保存在扩展名为 .class 的文件中,瞧瞧。您可以将它们压缩到 .jar 文件中,或者您可以使用 GroovyClassLoader 方法 defineClass

加载此类

关于java - 如何将内存中的 java 类写入 .class 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33801297/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com