2012-01-09 5 views
5

私は、ユーザーがテキスト領域に「実際の」Javaコードのスニペットを入力してから、コードを実行して簡単なシステムテストを実行できる小さなプログラムを持っています。このプログラムは何年も前に作られたものですが、今は同じことを達成するためにJavaプラットフォームを利用する新しい方法がある場合は好奇心です(例えば、ユーザーがテキストエリアにGroovyを入力したり、言語)。 仮想マシンで動的に型指定されたスクリプトをサポートしているJava 7について読んだとき、私は不思議に感じました。Javaでのスクリプト作成をサポートするためのすてきな方法はありますか?

答えて

3

Java 6のJavaScriptサポートを使用することができます。Creating meta language with JavaScriptEngineFactoryも参照してください。

また、SpringフレームワークにはDynamic language supportがあります。

ここでは、JVM 7の動的言語サポート(invokedynamic経由)は無関係であることに注意してください。 JVMバイトコード(JRubyやGroovyなど)にコンパイルされた動的言語を主な対象としています。

+1

Java 6 JVMのすべてがJavaScriptを搭載して出荷されているわけではありません。 –

2

ScriptEngineManagerがJava 1.6で導入されました。まだ存在しているSunの良い古いジャカルタBSFプロジェクトのバージョンです。どちらもGroovyを含む多様なスクリプティング言語をサポートしています。組み込みのScriptEngineManagerではJavaScriptのみサポートしていますが、Groovyインタプリタも追加できると思います。

1

新しいバージョンのJavaで追加されたスクリプティングサポートの他に、Bean Shellを使用するオプションがあります。これは1.5などの古いJavaバージョンでも使用できます。 Bean Shell使用しますが、単純に行うことができます。

// assuming you have Java code in a string called script, you can do 
Object result = new bsh.Interpreter().eval(script); 
// now result object will have the result of your Java code contained in string script 

Bean Shellですが、完全に評価するスクリプトのためのJava互換のスクリプトエンジンであり、その多くの製品にはApache、日、BEAが使用されています。

関連する問題