我已经创建了 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/