我创建了JCodeModel,其中包含所有我想要生成的类。 问题是我想要生成字节码(.class文件)和一个jar文件,但不想生成源代码。 有没有一种优雅的方式可以在不生成.java文件的情况下生成.class文件和jar文件呢?
我创建了JCodeModel,其中包含所有我想要生成的类。 问题是我想要生成字节码(.class文件)和一个jar文件,但不想生成源代码。 有没有一种优雅的方式可以在不生成.java文件的情况下生成.class文件和jar文件呢?
您可以考虑使用多个Java字节码生成器之一:任何Java字节码生成指南?
但是,如果您更喜欢处理JCodeModel库,则可以选择将中间Java代码作为临时阶段保存在内存中。以下是一系列提示:
(1) 这里是一个示例,演示如何在内存中获取Java源代码文本:在不写入文件的情况下动态编译生成的类
(2) 然后,您可以使用类似的方法再次将已编译的字节码保存在内存中:https://github.com/trung/InMemoryJavaCompiler/blob/master/src/main/java/org/mdkt/compiler/InMemoryJavaCompiler.java
(3) 最后,要从存储在内存中的字节码创建jar文件,只需执行类似于以下操作:如何使用JarOutputStream创建JAR文件?
PS:最后一阶段可以直接将流写入数据库(BLOB字段或类似字段)。