Я пытаюсь выполнить код Javascript с Java. Javascript-код использует jquery, поэтому я добавляю jquery.js перед моим кодом. Но он бросает следующее исключение,Позвоните javascript (jQuery/Envjs) из java-кода
Exception in thread "main" javax.script.ScriptException: sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "window" is not defined. (<Unknown source>#1) in <Unknown source> at line number 1
Как я запускаю это из кода Java, я понимаю, что он не имеет доступа к объекту окна так выше исключения. Я обнаружил, что EnvJs обеспечивает реализацию для требуемой среды, поэтому я попытался загрузить это сначала, сначала разместив его контент, создавая контент скрипта для eval. Но работать в следующем за исключением,
Exception in thread "main" javax.script.ScriptException: sun.org.mozilla.javascript.internal.EcmaError: TypeError: Cannot call property getCurrentContext in object [JavaPackage org.mozilla.javascript.Context]. It is not a function, it is "object". (<Unknown source>#1247) in <Unknown source> at line number 1247
Ниже приведен фрагмент кода,
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript");
String script = "Envjs code" + "jQuery code" + "my java script"; //code of envjs + jquery from the link provided at the end
engine.eval(script);
Invocable inv = (Invocable) engine;
inv.invokeFunction("myFunc", obj1, obj2);
Я не использовать какие-либо функции браузера, так что не требуется, как окно объекта. Поэтому в идеале я не хочу загружать Envjs. Пожалуйста, дайте мне знать, как загрузить код jQuery.
Еще один вопрос - Как передать Json Object из Java-кода в функцию Javascript в качестве параметра?
http://www.envjs.com/dist/env.rhino.1.2.js