我创建了包含我想要生成的所有类的 JCodeModel。问题是我想生成字节码(.class 文件)和一个 jar,但不是源代码。有没有一种优雅的方法可以在不生成 .java 文件并稍后将其编译成 .class 文件和 jar 的情况下做到这一点?
问问题
308 次
1 回答
0
您可以考虑几个 java 字节码生成器之一:任何 Java 字节码生成指南?
但是,如果您更喜欢处理 JCodeModel lib,您可以选择将中间 Java 代码作为临时阶段保存在内存中。以下是一系列提示:
(1) 下面是一个如何在内存中获取 java 源文本的示例:Compile dynamicly 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 文件,只需执行类似于:如何使用 JarOutputStream 创建 JAR 文件?
PS:最后阶段可以作为流直接写入数据库(BLOB字段左右)来完成。
于 2015-09-11T22:01:01.657 回答