.javaファイルにJavaコードを生成する方法を提供するJava用のツール(C#のcodedomのようなもの)を知っている人はいますか?
編集:私は、操作を自動化することを主な目的とするプラットフォームを構築しています。いくつかの入力を与えて、外部ツールのコードを生成したいと思います。したがって、実行時の生成ではありません。それを生成して実際のファイルに出力したいと思います。
.javaファイルにJavaコードを生成する方法を提供するJava用のツール(C#のcodedomのようなもの)を知っている人はいますか?
編集:私は、操作を自動化することを主な目的とするプラットフォームを構築しています。いくつかの入力を与えて、外部ツールのコードを生成したいと思います。したがって、実行時の生成ではありません。それを生成して実際のファイルに出力したいと思います。
JETはおそらく時代遅れです(私はそれを使用しませんでした)JETチュートリアルパート1
コード生成におけるEclipseプラグイン用のその他のプラグイン
編集:申し訳ありませんが、コードダムとこのツールが意味する機能がわかりません。
スタンドアロンはFreemarker であり、Velocityはこの例も参照してください
ASMを使用して、バイトコードレベルで既存のクラスを変更するか、完全に新しいクラスをその場で生成することに成功しました。チュートリアルでは、これを非常に理解しやすい方法で説明します。
ほとんどのそのようなツールのようなASMは、ソースではなくバイトコードを生成します。この理由は、プログラムを使用して新しいコードを動的に生成して実行する場合、これまでJavaコンパイラを呼び出すのは簡単ではなかったためです。したがって、一般的に、ソースよりもバイトコードを生成して使用する方が簡単でした。
プログラム内ですぐにコードを生成して実行する必要がある場合は、バイトコード操作ツールを使用することをお勧めします。必要なのがJavaソースだけの場合は、入力形式を取得してコードを生成する独自のコードジェネレーターをロールします。これを支援するフレームワークを探すこともできますが、ソースファイルは単なるテキストであるため、特にカスタム入力形式がある場合は、通常、これを自分で作成するのも同じくらい簡単です。
ABSEとAtomWeaverは、コード生成とモデル駆動型の開発フレームワークを形成し、必要なものを簡単に実装できます。ABSEは、コードジェネレーターを小さなビット(Atomsと呼ばれる)から構成する新しい方法論であり、AtomWaverは、ジェネレーターモデルを実装、操作、および使用できる簡単なIDEです。
また、プログラマー以外の人も、すでに作成されたパーツ(以前に準備したアトム)から作成されたプログラム/構成などを作成できます。
このプロジェクトは現在公開されており、アルファ版が利用可能になっています。ABSEはオープンで、AtomWeaverは個人および商用で無料で使用できます。
ここで詳細情報を入手してください:http ://www.abse.info (免責事項:私はプロジェクトリーダーです)
試すことができるのは、既存の文法(ANTLRなど)を使用してASTを構築することです。次に、ASTからコードを生成します。これは、単純なテンプレートよりもはるかに堅牢なはずです。真ん中の何かについては、 StringTemplateについてのTerence Parrからの(目を見張るような)話をお勧めします。(申し訳ありませんが、手元にトークのリンクがありません)
本当に必要なものはわかりませんが、 javassistを見てください。それはあなたが探しているものですか?