Oracleの新しいNashornJavaScriptEngineを試してみる方法を探しています。最新のOpenJDK8(b65)をDLしましたが、含まれているスクリプトエンジンはRhinoだけのようです。
NashornがOpenJDKのRhinoをいつ(またはどのビルドで)置き換えるか知っている人はいますか?またはさらに良いことに、すでに含まれているJDKをどこで入手できますか? Netbeansがそれを使用するデバッガをすでに作成していることは知っていますが、ライブラリ/コードをどこから取得して作成を開始したかはわかりません。
誰かリンクがありますか?
ありがとう。
OpenJDKにはまだNashornの兆候がないようです。
2012年10月のジムラスキーからの最新のコメントは、2012年第4四半期を示唆しています。
https://blogs.Oracle.com/nashorn/entry/welcome_to_the_nashorn_blog#comment-1351205506968
SOの nashorn タグの時間だと思います!
2012年12月1日更新:
2012年12月下旬にOpenJDKがそれを持っているようです https://blogs.Oracle.com/nashorn/entry/request_for_project_nashorn_open
2013年3月10日更新:
@Sethは、1.7リリース3 PRERELEASEがNashornではないことは正しいです。私の間違い!
JDK 8 b68 まだマージされていないブランチが含まれています nashorn〜jdk8 ブランチ。
このブランチのREADMEは次のように述べています:
NashornリポジトリはOpenJDKに移行中のため、いくつかの領域で不完全です。ビルドシステムは完全には統合されていません。完了すると、NashornはJREの適切な場所にインストールされます。統合されると、正しいバージョンのJDKがNashornにラップされます。それまでの間、JDK8b68以降を使用してください。
ソースからnashorn〜jdk8をチェックアウトすると、nashorn.jarをビルドできます。
cd nashorn~jdk8/nashorn/make
ant clean; ant
最近のjdk1.8ビルドでjavax.script.ScriptEngineManagerから「nashorn」エンジンをリクエストできます。
jrunscript -cp ./nashorn.jar -l "nashorn" -e "println(engine.factory.getParameter(
javax.script.ScriptEngine.ENGINE))"
> Oracle Nashorn
またはパスにnashorn.jarを使用:
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("nashorn");
2014年3月19日更新:
@ncasasからの更新; JDK 8がリリースされました そしてNashornがデフォルトのJSエンジンです。
私はもう少し掘り下げました、そしてあなたはここにあるそれのバックポートを使うことによってNashornをJDK7で動作させることができます:
https://bitbucket.org/ramonza/nashorn-backport
そのリポジトリをチェックアウトし、BitBucketページの説明に従ってant -f make/build.xml
を使用してリポジトリを構築してみてください
Dynalinkが原因でビルドが失敗した場合は、問題のセクションにリストされているパッチを適用してください ここ (開発者によってまもなくメインリポジトリにパッチが適用されると思います)。
ビルドすると、クローンリポジトリのdistフォルダ内にnashorn.jarファイルが作成されます。
次に、次のようなVMオプションを使用して、このjarをbootclasspathに追加する必要があります。
-Xbootclasspath/a:C:/nashorn-backport/dist/nashorn.jar
そして今、あなたはnashornを使うことができるはずです。これが私が書いた簡単なテストプログラムであることを確認するために、利用可能なエンジン工場をリストアップします。
import javax.script.*;
public class NashornTest {
public static void main(String args[]) {
ScriptEngineManager manager = new ScriptEngineManager();
for (ScriptEngineFactory f : manager.getEngineFactories()) {
printBasicInfo(f);
System.out.println();
}
}
public static void printBasicInfo(ScriptEngineFactory factory) {
System.out.println("engine name=" + factory.getEngineName());
System.out.println("engine version=" + factory.getEngineVersion());
System.out.println("language name=" + factory.getLanguageName());
System.out.println("extensions=" + factory.getExtensions());
System.out.println("language version=" + factory.getLanguageVersion());
System.out.println("names=" + factory.getNames());
System.out.println("mime types=" + factory.getMimeTypes());
}
}
Bootclasspathを設定して実行すると、RhinoとNashornが一覧表示されます。設定しないと、Rhinoのみが表示されます。
JDK8をインストールし、JDKのjjs(Nashorn Interpreter)のエイリアスを作成します。たとえば、test.jsというファイルを作成する場合は、次のコマンドでプログラムを実行できます。
$ jjs test.js
Mac OS =エイリアスjjs = ’/ Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home/jre/bin/jjs’
Windows =「Java8_HOME」という環境変数を定義し、jdk8フォルダーをポイントすると、次のコマンドを実行してjjsを呼び出すことができます。
> “%Java8_HOME%\jre\bin\jjs” test.js
私は最近それを使用する方法を検討してきましたが、現在、2月7日からの現在のバージョンにはないため、ソースからOpenJDKをビルドする場合にのみ使用を開始できると思います。
ただし、今週後半にリリースされる開発者プレビューバージョン(2013年2月21日)に含まれると思います。