大規模な Java アプリケーションに groovy を埋め込もうとしています。
Java アプリケーションは、起動時にいくつかのユーティリティ Groovy スクリプトをロードする必要があります。
その後、アプリケーションは他のスクリプトを複数回実行する必要があります。また、GUI でコードを入力し、ユーザーの要求に応じて実行する必要もあります。
私が直面している問題はこれです:
次のように起動スクリプトをロードしています。
GroovyShell gShell = new GroovyShell();
gShell.evaluate(new FileReader("scripts/autoload.groovy"));
autoload.groovy に以下が含まれているとします。
def prnt(m) {
println("From Groovy: " + m);
}
これはうまくいきます。しかし、次を使用してユーザーコマンドを実行したい場合:
gShell.evaluate("prnt 66");
エラーが発生します:
groovy.lang.MissingMethodException: No signature of method: Script2.prnt() is applicable for argument types: (java.lang.Integer) values: [66]
ユーザー スクリプトは、既に読み込まれているメソッドにどのようにアクセスできますか?
注:「autoload.prnt 88」も試しましたが、それでもエラーが発生します。