2

実行時にJavaでコードをコンパイルする必要があります。私はこれを調べましたが、それはそれを行う方法のようです。ここまでは順調ですが、すべてのプラットフォームで最終的なプログラムを実行する必要があります。なので、j r e だけのシステムがあると困ります。

今、コンパイラをJavaライブラリとして入手することを考えました。しかし、tools.jar を Java jdk からプロジェクトにコピーする解決策についてもわかりません。それは有効なアプローチですか、それとも別の解決策や使用できるライブラリがありますか?

スクリプトを Java コードに変換して実行したいので、これが必要です。

ありがとうございました!

- 編集 -

なぜこれが必要なのですか?

ユーザーは、プログラムの一部の動作に影響を与える必要があります。ですから、小さなスクリプト言語のようなものがあります。パフォーマンス上の理由から、それをJavaソースコードに変換してからバイトコードに変換してから使用するのが最善の解決策だと思います。このスクリプトは頻繁には変更されず、プログラムの主要部分が実行される前にのみ変更されます。より良い代替案がある場合は、それらについても教えていただければ幸いです。

質問がある場合、または詳細についてさらに情報が必要な場合は、質問してください。

4

1 に答える 1

1

私が思いつく最良の提案は Janino です: http://docs.codehaus.org/display/JANINO/Home。残念ながら、コンパイラはまだ Java 5 を完全にはサポートしていないようです (ホームページの内容によると)。


あなたの最善の策は、弾丸を噛んでJDKを前提条件にすることだと思います。JRE をインストールすることは JDK よりもはるかに難しくはないはずであり、Java 開発を行う必要がないことを人々に説明するのは簡単です

この問題を回避する別の方法があります。

  • Java ソース コードを生成する代わりに、バイトコードに直接コンパイルします。(私はこれを行うことをお勧めしません...)

  • DSL を、インタープリターを作成できる内部フォームにコンパイルします。


パフォーマンス上の理由から、それをJavaソースコードに変換してからバイトコードに変換してから使用するのが最善の解決策だと思います。

それは私には「時期尚早の最適化」のように聞こえます。

于 2014-12-04T22:45:56.463 に答える