20

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

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

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

ありがとう。

4

4 に答える 4

15

OpenJDK での Nashorn の兆候はまだないようです。

2012 年 10 月の Jim Laskey からの最新のコメントは、2012 年第 4 四半期を示唆しています。

https://blogs.oracle.com/nashorn/entry/welcome_to_the_nashorn_blog#comment-1351205506968

タグを付ける時が来たと思います!

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 にラップされます。当面は、JDK8 b68 以降を使用してください。

ソースからnashorn~jdk8をチェックアウトすると、 nashorn.jarをビルドできます。

cd nashorn~jdk8/nashorn/make
ant clean; ant

最近の jdk 1.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 エンジンになりました。

于 2012-11-17T13:12:21.657 に答える
9

さらに掘り下げてみたところ、次の場所にあるバックポートを使用して、Nashorn を JDK7 で動作させることができます。

https://bitbucket.org/ramonza/nashorn-backport

そのリポジトリをチェックアウトしant -f make/build.xml、BitBucket ページの説明に従ってビルドを試みます。

ダイナリンクが原因でビルドに失敗した場合は、ここの問題セクションに記載されているパッチを適用してください (開発者によってすぐにメイン リポジトリにパッチが適用されると思います)。

ビルドすると、クローン リポジトリの 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 のみが表示されます。

于 2013-03-26T10:48:51.427 に答える
5

JDK8 をインストールし、JDK の jjs (Nashorn Interpreter) のエイリアスを作成します。たとえば、test.js というファイルを作成すると、次のようにプログラムを実行できます。

$ jjs test.js

Mac OS = alias jjs='/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home/jre/bin/jjs'</p>

Windows = 「JAVA8_HOME」という環境変数を定義し、jdk8 フォルダーを指定すると、次のコマンドを実行して jjs を呼び出すことができます。

> “%JAVA8_HOME%\jre\bin\jjs” test.js
于 2013-08-26T15:05:30.323 に答える
2

私は最近それをどのように使用するかを見てきました.2月7日以降の現在のバージョンには含まれていないため、ソースからOpenJDKをビルドする場合にのみ、使用を開始できると思います.

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

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

于 2013-02-18T11:32:02.357 に答える