2

基本的に、Groovy で CLI を作成しようとしています。JavaでJavaFX GUI全体をセットアップしており、groovyスクリプトを入力して、groovyスクリプト内でさまざまな機能を実行できるようにしたいと考えています。

たとえば、次のスクリプトがあるとします。

void meow() {
    println "walrus"
}

「meow();」と入力できるようにしたい Enter キーを押して、スクリプトを参照として使用して評価します。

使ってみました

shell.evaluate(inputStr, "src/Server/Scripting/CommandLineScript.groovy");

しかし役に立たない。エラーが発生するだけです:

groovy.lang.MissingMethodException: No signature of method: CommandLineScript.meow() is applicable for argument types: () values: []

次のような他の標準関数を呼び出すことができます。

shell.evaluate("println 'Hello World!';");

しかし、私は自分のメソッドを実行できません...どうすれば解決できますか?

4

2 に答える 2

0

お時間をいただきありがとうございます。もう少し検索した後(常に質問を投稿した後、研究で答えを見つけます>、<)、GroovyShellの基本クラスを設定できることがわかりました...私はこのようにしました:

ClassLoader parent = getClass().getClassLoader();
GroovyClassLoader loader = new GroovyClassLoader(parent);
loader.addClasspath("src/ScriptLoc/");
binding = new Binding();
CompilerConfiguration compConfig = new CompilerConfiguration();
compConfig.setScriptBaseClass("ScriptName");

shell = new GroovyShell(loader, binding, compConfig);

私はそれを行う方法があると思っていましたが、それがあります...テキストボックスからスクリプトを評価する必要があるときはいつでも、それを評価するだけで、ベーススクリプトのコンテキストで評価されます。

于 2014-09-15T19:35:39.383 に答える