ScriptEngineManager manager = new ScriptEngineManager(null);
ScriptEngine engine = manager.getEngineByName("nashorn");
BundleContext context = FrameworkUtil.getBundle(FormulaImpl.class).getBundleContext();
URL configURL = context.getBundle().getEntry("eval.txt");
if (configURL != null) {
InputStream input = null;
try {
input = configURL.openStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(input));
StringBuilder out = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
out.append(line);
}
engine.eval(out.toString());
} catch (Exception e) {
throw new RuntimeException(e.getMessage());
} finally {
try {
input.close();
} catch (Exception e) {
throw new RuntimeException(e.getMessage());
}
}
}
Object obj = engine.get("formulaColumn");
В этом коде obj получается как массив объектов. Я не могу преобразовать в объект. В java 1.7 используется объект Rhino. я пробовал с
Object obj = (Object)ScriptUtils.convert(engine.get("formulaColumn"), Object.class);
Но ошибка calssDef не отображается в java 1.8
Я использую осги. Я экспортировал jdk.nashorn.api.scripting.ScriptUtils. Из моего jsfile я возвращаю массив.
javax.script
, а неjdk.nashorn.api.scripting
- person Aaron   schedule 06.09.2017