10

これについて説明するための良いチュートリアルなどはありますか? JavaScript には既に慣れていますが、Java でスクリプトを作成したことはまだありません。ありがとう。基本的に、プロジェクトの一部を処理するために JavaScript/XML を使用したいと考えています。Java 8 が Nashorn を介して JavaScript サポートを導入したことは知っています。これがどのように機能するかを学びたいです。javax.script を使用する必要があることは知っていますが、そのパッケージがどのように機能するかはわかりませんし、Nashorn がどのように機能するかもわかりません。

4

4 に答える 4

17

ここ数週間、nashorn とたくさん遊んだ。私はすべての調査結果をサンプル主導のチュートリアルに書きました。

http://winterbe.com/posts/2014/04/05/java8-nashorn-tutorial/

次のトピックについて説明します。

  • Java コードから JavaScript 関数を呼び出す
  • javascript から Java メソッドを呼び出す
  • javascript 内から Java クラスを使用する
  • すべての言語拡張機能の概要 (例: それぞれ)

Nashorn から始めるのに役立つことを願っています。

于 2014-04-05T22:10:18.897 に答える
11

最近、Java と JavaScript に関するいくつかのプレゼンテーションを行いました (Nashorn 経由)。ここで私のスライドと例を見つけることができます。

これは非常に単純なスクリプト ランナーの実装です。

import javax.script.*;

public class ScriptRunner {
    public static void main(String[] args) throws ScriptException {
        ScriptEngineManager scriptEngineManager = new ScriptEngineManager();
        ScriptEngine nashorn = scriptEngineManager.getEngineByName("nashorn");
        String scriptName = args[0];
        Bindings bindings = nashorn.createBindings();
        bindings.put("scriptFileName", scriptName);
        nashorn.setBindings(bindings, ScriptContext.ENGINE_SCOPE);
        nashorn.eval("load('src/main/resources/javascript/' + scriptFileName)");
    }

}

アプリケーション パラメーターとして渡すことができる test.js。

print("This is hello from test.js");

jjsまた、 JDK8 に付属するツールもあります。CLI JavaScript インタープリターです。JavaScript および Java でシェル スクリプトを記述するために使用できます。( OSX、Linuxで改善する方法についての良いSOアドバイス)。jjsこれはそのようなスクリプトの例です

#!/usr/local/bin/jjs -scripting

var currentDir = new java.io.File('.'),
    allFiles = currentDir.list();
print(currentDir.getCanonicalPath());
for (var i = 0; i < allFiles.length; i++) {
    print(allFiles[i]);
}

何かありましたら遠慮なく質問してください。

ありがとう、

ヴィク

于 2014-03-27T14:27:48.920 に答える
2

これは、非常に基本的な「入門」ビデオです。

https://www.youtube.com/watch?v=Cxyg22C5gcw

Julien Ponge も優れた紹介記事を書いています。

http://www.oracle.com/technetwork/articles/java/jf14-nashorn-2126515.html

正式なドキュメントについては、Nashorn Wiki もお勧めします。

https://wiki.openjdk.java.net/display/Nashorn/Main

于 2014-03-28T10:38:45.210 に答える