0

我不太确定如何解释这一点,但这里是:

我希望能够将一些命令“插入”到将从外部文件加载的部分代码中。要解析和执行这些命令,我​​大概必须使用一些脚本,例如 BeanShell 的 eval 方法。问题是它似乎无法识别它所在的实例/方法。作为一个非常基本的例子,我想做类似的事情

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

这可能吗?我应该使用其他脚本工具吗?

4

2 回答 2

1

如果您使用的是 1.6,则可以使用内置的 JavaScript 支持。

Java Scripting Programmer's Guide解释了如何将Java 类导入到您的脚本中。

本文中的代码示例 9解释了如何将对象传递到脚本的作用域中。

于 2009-09-10T21:37:55.357 回答
0

使用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);
    }
}
于 2017-06-17T12:07:30.690 回答