質問

これをどのように説明できるのか本当にわかりませんが、ここにあります:

「挿入」できるようにしたい外部ファイルからロードされるコードの一部へのいくつかのコマンド。これらのコマンドを解析して実行するには、おそらくBeanShellのevalメソッドのようなスクリプトを使用する必要があります。問題は、内部にあるインスタンス/メソッドを認識していないように見えることです。非常に基本的な例として、次のようなことをしたい

    public void somethingHappens()
    {
        Foo foo = new Foo();
        Interpreter i = new Interpreter();
        i.eval("print(foo.getName());");
    }

これは可能ですか?他のスクリプトツールを使用する必要がありますか

役に立ちましたか?

解決

1.6を使用している場合、組み込みのJavaScriptサポートを使用できます。

Java Scripting Programmer's Guide は、Javaクラスをスクリプトにインポートする方法を説明しています。

この記事の渡し方を説明しています。オブジェクトをスクリプトのスコープに追加します。

他のヒント

beanshellを使用して、これを試すことができます

package beanshell;

import bsh.EvalError;
import bsh.Interpreter;

public class DemoExample {

    public static void main( String [] args ) throws EvalError  {
        Interpreter i = new bsh.Interpreter();
        String usrIp = "if(\"abc\".equals(\"abc\")){"
                + "demoExmp.printValue(\"Rohit\");"
                + "}";

        i.eval(""
                + "import beanshell.DemoExample;"
                + "DemoExample demoExmp = new beanshell.DemoExample();"
                + ""+usrIp);
    }

    public static void printValue(String strVal){
        System.out.println("Printing Value "+strVal);
    }
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top