BeanShellを使用してメソッド内でスクリプトを実行する
質問
これをどのように説明できるのか本当にわかりませんが、ここにあります:
「挿入」できるようにしたい外部ファイルからロードされるコードの一部へのいくつかのコマンド。これらのコマンドを解析して実行するには、おそらく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);
}
}
所属していません StackOverflow