3

生成したいすべてのクラスを含む JCodeModel を作成しました。問題は、バイトコード (.class ファイル) と jar を生成したいが、ソースは生成したくないということです。.java ファイルを生成せずに、後で .class ファイルと jar ファイルにコンパイルするエレガントな方法はありますか?

4

1 に答える 1

0

いくつかの Java バイト コード ジェネレーターの 1 つを検討できます: Any Java Bytecode Generation Guide?

しかし、JCodeModel lib を扱いたい場合は、一時的なステージとして中間の 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 フィールドなど) に直接書き込むストリームとして実行できます。

于 2015-09-11T22:01:01.657 に答える