ブラウザーで JavaScript エンジンを判別する方法についていくつか質問があります。rhino と nashorn で実行する必要がある JavaScript コードを作成する必要があります。
コードが rhino または nashorn で実行されているかどうかを確認するにはどうすればよいですか? エンジンを決定できる典型的な関数、変数、定数はありますか?
ブラウザーで JavaScript エンジンを判別する方法についていくつか質問があります。rhino と nashorn で実行する必要がある JavaScript コードを作成する必要があります。
コードが rhino または nashorn で実行されているかどうかを確認するにはどうすればよいですか? エンジンを決定できる典型的な関数、変数、定数はありますか?
--no-java オプションを指定すると、"Java" は Nashorn のオブジェクトとして定義されません。Nashorn で常に利用できるものを確認することをお勧めします。DIRまたはFILE変数のようなものが良い候補です。いつもnashornにあります。
jjs> タイプのDIR
ストリング
(jjs ではなく) javax.script API を使用している場合は、エンジン名を取得して確認することもできます。
import javax.script.*;
public class Main {
public static void main(String[] args) throws Exception {
ScriptEngineManager m = new ScriptEngineManager();
ScriptEngine e = m.getEngineByName("nashorn");
System.out.println(e.getFactory().getEngineName());
}
}
Nashorn では、エンジン名として「Oracle Nashorn」が表示されます。