java - 使用 JCodeModel 生成 java 字节码

标签 java code-generation jcodemodel

我已经创建了 JCodeModel,其中包含我想要生成的所有类。 问题是我想生成字节码(.class 文件)和 jar,但不是源代码。 有没有一种优雅的方法可以做到这一点,而无需生成 .java 文件,然后将其编译成 .class 文件和 jar?

最佳答案

您可以考虑几个 Java 字节代码生成器之一:Any Java Bytecode Generation Guide?

但是,如果您更喜欢处理 JCodeModel lib,您可以选择将中间 Java 代码保留在内存中作为临时阶段。以下是提示序列:

(1) 下面是如何获取内存中的 java 源文本的示例: Compile dynamically generated class at runtime w/o writing to File

(2) 然后你可以使用类似的方法将编译后的字节代码再次保留在内存中:https://github.com/trung/InMemoryJavaCompiler/blob/master/src/main/java/org/mdkt/compiler/InMemoryJavaCompiler.java

(3) 最后,要从内存中存储的字节代码创建 jar 文件,只需执行类似以下操作: How to use JarOutputStream to create a JAR file?

PS:最后阶段可以作为直接写入数据库(BLOB 字段等)的流来完成。

关于java - 使用 JCodeModel 生成 java 字节码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30867788/

相关文章:

java - 高峰请求到来时,Java GC频繁且时间长,导致应用停止响应10分钟

java - Birt 类 EngineException 的 NoClassDefFoundError

c# - 如何为任意类型创建 Roslyn ITypeSymbol?

c# - 在 .NET Core 2.x csproj 项目中可靠地生成 C# 代码?

java - 如何将 CodeModel 表达式强制括在括号中?

java - FileNotFound 错误,但我的 txt 文件与 java 文件位于同一位置

java - 是否有用于在 java 中制作可配置工具栏的小部件

c# - 如何从 JSON 字符串自动生成 C# 类文件

java - 添加版权信息生成的java代码 - Jcodemodel

java - JCodemodel 中的异常消息