web-dev-qa-db-ja.com

OracleのNashornJS Engineでコーディングを開始するにはどうすればよいですか?また、OpenJDKのRhinoはいつ置き換えられますか?

Oracleの新しいNashornJavaScriptEngineを試してみる方法を探しています。最新のOpenJDK8(b65)をDLしましたが、含まれているスクリプトエンジンはRhinoだけのようです。

NashornがOpenJDKのRhinoをいつ(またはどのビルドで)置き換えるか知っている人はいますか?またはさらに良いことに、すでに含まれているJDKをどこで入手できますか? Netbeansがそれを使用するデバッガをすでに作成していることは知っていますが、ライブラリ/コードをどこから取得して作成を開始したかはわかりません。

誰かリンクがありますか?

ありがとう。

20
max

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エンジンです。

15
pd40

私はもう少し掘り下げました、そしてあなたはここにあるそれのバックポートを使うことによって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のみが表示されます。

9
Lyndon Armitage

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
5
theMarceloR

私は最近それを使用する方法を検討してきましたが、現在、2月7日からの現在のバージョンにはないため、ソースからOpenJDKをビルドする場合にのみ使用を開始できると思います。

ただし、今週後半にリリースされる開発者プレビューバージョン(2013年2月21日)に含まれると思います。

ソース: http://openjdk.Java.net/projects/jdk8/

2
Lyndon Armitage