문제

나는 이것을 어떻게 설명 할 수 있는지 잘 모르겠지만 여기에 간다 :

외부 파일에서로드 될 코드의 일부에 일부 명령을 "삽입"할 수 있기를 원합니다. 이 명령을 구문 분석하고 실행하려면 BeanShell의 Eval Method와 같은 스크립팅을 사용해야합니다. 문제는 인스턴스/메소드가 내부에있는 인스턴스를 인식하지 않는 것 같습니다. 매우 기본적인 예로서, 나는

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

이게 가능해? 다른 스크립팅 도구를 사용해야합니까?

도움이 되었습니까?

해결책

1.6을 사용하는 경우 내장 된 JavaScript 지원을 사용할 수 있습니다.

그만큼 Java 스크립팅 프로그래머 가이드 Java 클래스를 스크립트로 가져 오는 방법을 설명합니다.

코드 예제 9 기사 객체를 스크립트의 범위에 전달하는 방법을 설명합니다.

다른 팁

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