6

ブラウザーで JavaScript エンジンを判別する方法についていくつか質問があります。rhino と nashorn で実行する必要がある JavaScript コードを作成する必要があります。

コードが rhino または nashorn で実行されているかどうかを確認するにはどうすればよいですか? エンジンを決定できる典型的な関数、変数、定数はありますか?

4

2 に答える 2

1

--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」が表示されます。

于 2016-06-10T04:17:46.547 に答える