Java のスクリプティング サポートを調べています。現在、このテスト クラスを持っています。
import java.io.FileNotFoundException;
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
/**
*
* @author Makerimages
*/
public class main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws ScriptException, FileNotFoundException, NoSuchMethodException {
// create a script engine manager
ScriptEngineManager factory = new ScriptEngineManager();
// create JavaScript engine
ScriptEngine engine = factory.getEngineByName("JavaScript");
// evaluate JavaScript code from given file - specified by first argument
engine.eval(new java.io.FileReader("C:/Users/**/Documents/NetBeansProjects/test/src/l.js"));
}
public void makeObject(String s)
{
System.out.println(s);
}
}
そしてこのl.jsファイル
makeObject("afzsdf");
これを実行しようとすると、
run: スレッド "main" での例外 javax.script.ScriptException: sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "makeObject" が定義されていません。(#1) com.sun.script.javascript.RhinoScriptEngine.eval(RhinoScriptEngine.java:224) の行番号 1 の javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:249) の main.main(main. java:34) 原因: sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "makeObject" が定義されていません。(#1) sun.org.mozilla.javascript.internal.ScriptRuntime.constructError(ScriptRuntime.java:3771) で sun.org.mozilla.javascript.internal.ScriptRuntime.constructError(ScriptRuntime.java:3749) で sun.org で.mozilla.javascript.internal.ScriptRuntime.notFoundError(ScriptRuntime.java:3834) (sun.org.mozilla.javascript)。
スクリプトで makeObject 関数を使用できるようにするにはどうすれば修正できますか?