Javaで動的コンパイルのオプション5
-
05-09-2019 - |
質問
V5でのJavaコードのオンザフライcompiliationおよび実行のためのJanino以外の選択肢はありますか?私はV6がコンパイラAPIを持って知っているが、私はV5のVMで動作する必要があります。
私は基本的に、完全なJavaクラスを含む文字列を取り、それをコンパイルし、それをメモリにロードする必要があります。
解決
何が欲しいのは Janino のようなものです。私たちは年のためにそれを使用しました。あなたは、コード(標準の近くに)それを与え、あなたはそれらを使用することができますので、それはあなたのクラスを提供します。それは実際にはかなりの数の異なるモードを持っており、1.5シンタックスシュガーとオートボクシングなどをサポートしています。
あなたはjavacのを呼び出す場合だけでなく、あなたはそれがない何のための準備をする必要があります、あなたは正しい場所にクラスを置くか、追加のクラスローダを作る処理する必要があります。
Janinoは非常に簡単です。それはあなたが探している正確に何である必要があります。
他のヒント
をプログラムのjavacを呼び出します:
ます。http:// www.juixe.com/techknow/index.php/2006/12/12/invoke-javac-at-runtime/する
com.sun.tools.javac.Main javac = new com.sun.tools.javac.Main(); String[] options = new String[] { "-classpath", classpath, "-d", outputDir, filename }; javac.compile(options);
すべてのアプリケーションサーバーでは、これまでのためのJSPのためにこれを行うので、明らかにそれが可能です。チェックアウトTomcatのソースコード多分?
所属していません StackOverflow