由于Nashorn被停止,我们目前正在尝试将我们的(仍然是Java8)应用程序(非常大的monolith)从Nashorn更改为GraalVM。由于应用程序在多个项目中被用作库,所以我们决定只将必要的far添加到类路径(到目前为止,这似乎是可行的),而不是使用整个GraalVM运行时。
要使用GraalVM,我将所有出现的getEngineByName改为graal.js,如下所示:
ScriptEngineManager sem = new ScriptEngineManager(null);
scriptEngine = sem.getEngineByName("graal.js");由于应用程序非常复杂,理解应用程序的每个方面相对比较困难,我想知道是否有一种方法来验证在准备好的JavaScript字符串作为输入时使用的是什么JavaScript引擎?我的目标是编写一个单元测试,以验证是否真的使用了JavaScript作为输入的每个方法。
实现这一目标的最佳途径是什么?
发布于 2021-11-24 08:19:27
您可以将脚本引擎的类名与com.oracle.truffle.js.scriptengine.GraalJSScriptEngine进行比较,如下所示:
ScriptEngine scriptEngine = new ScriptEngineManager().getEngineByName("graal.js");
String engineName = scriptEngine.getClass().getName();
boolean isGraalJS = engineName.equals("com.oracle.truffle.js.scriptengine.GraalJSScriptEngine");
System.out.println(isGraalJS);https://stackoverflow.com/questions/69976533
复制相似问题