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がオブジェクト配列として取得されます。 オブジェクトに変換できません。 Rhinoオブジェクトを使用してJava 1.7で取得しています。 私はOSGiのを使用していますjava.lang.NoClassDefFoundErrorが:のOSGiバンドル内のJDK/nashorn/API /スクリプティング/ ScriptUtils
Object obj = (Object)ScriptUtils.convert(engine.get("formulaColumn"), Object.class);
しかし、Javaで1.8
を示しませんcalssDefエラーで試してみました。私はjdk.nashorn.api.scripting.ScriptUtilsをエクスポートしました。 私のjsfileから配列を返しています。
リターンJava.to(データ、 "javaの:
あなたの質問はほとんど読めません。 NoClassDefFoundErrorはクラスパスに必要なクラスがなく、ビルドパスに欠けているjarを追加することを意味します –
完全なstackTraceを投稿できますか? ScriptUtilsクラスがJDKに含まれているため、ScriptUtilsクラスが不足している可能性は低いようです。 – Aaron
java.lang.NoClassDefFoundError:jdk/nashorn/api/scripting/ScriptUtils エラーが表示されています。 jdk/nashorn/api/scripting/ScriptUtilsを追加しました。しかし、それは得ることができないランタイム。 – Diljish