問題タブ [nashorn]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
1630 参照

java - JavaScript 用 Ja​​va パーサー: すべての関数/変数を一覧表示する

Java で JavaScript パーサーを実装する予定です。私はそれを行うにはいくつかの方法があることを知っています。次のように、それを正しく行うのに役立つビュー フレームワーク/エンジン/パーサーがあります。

  • ANTLR 3/4 : v3 用の js グラマーしかないようです
  • Mozilla Rhino : 初期 (トップ) 名前空間で変数名を解析できます。しかし、オブジェクトメンバーなどのネストされたスコープを解析できません..うーん..
  • Nashorn : やってみようかな..?

多分:

  • closure-compiler : IMHO これはとてもいいです。ただし、「Google 以外の」js コードの場合は除きます :) たとえば、適切に機能させるには、javascript ソースにいくつかのコーディング規則を適用する必要があります。
  • それを行うためにPackerを適応させることは可能でしょうか?Packerの Java 実装はありますか ???

この記事に関連するEcmaScript 5.1があります。とても快適そうです。しかし、これはまさに私が探しているものではありません..それでもJavaはありません:)

私の質問は:

JavaScript を解析するための最良の方法は次のとおりです。

  • (オブジェクト-)関数名
  • (オブジェクト-) メンバー名 (変数など)

それを行うことさえ可能ですか?

あなたのアプローチは何ですか?私にとって、JavaScript のすべての特別なマークアップを解析することは必須ではありません。重要な要素は、次のような一般的なマークアップの一貫したコンテキストで関数/変数を解析することです。

解析は、次の情報を提供できる必要があります。

ノードが関数/変数であるかどうかを直接判断する必要はありません。

0 投票する
2 に答える
6635 参照

java - Javaオブジェクトでjavascript(nashorn)から返された値をアンボックスする方法は?

Java (nashorn) で Javascript を実行する次のプログラムがあります。Javascript コードはオブジェクトを返しています。

Java で結果オブジェクトのオブジェクト値にアクセスするにはどうすればよいですか? 最初は、result.toString()結果を得るために使用してみました。と思われるreturn [Object Object]

、および(Javascriptと同様)にresult相当する値を取得できるように、結果をオブジェクトに返す方法はありますか。result.valueresult.count

0 投票する
1 に答える
3528 参照

java - java.lang.ClassCastException: jdk.nashorn.internal.objects.NativeArray は java.lang.Comparable にキャストできません

Nashorn で JavaScript を実行中

私は得た

では、JavaScript で Java Collections を使用する方法はありますか?

アップデート:

Attila のおかげで、JS と JJS スクリプトの両方が同じ出力を生成するわけではありません

0 投票する
1 に答える
947 参照

java - Nashorn の javascript 内のクラスからメソッドにアクセスする方法

Nashorn では、Java の事前定義されたクラスにアクセスできます。

同様に、Javaスクリプトで私のクラスにアクセスすることは可能です。もしそうなら、どうすればそれを行うことができますか?

0 投票する
3 に答える
1032 参照

java - Java8 Nashorn - ReferenceError: "eu" が定義されていません

Nashorn によって実行される JavaScript からクラスの静的メソッドを呼び出そうとしています:

残念ながら、私はこのエラーが発生しています:

Nashorn を呼び出すクラスは eu.wansdyke... パッケージに含まれているので、これには少し驚きました。私が間違っていることはありますか?

0 投票する
0 に答える
438 参照

java - Gradle は (Java エントリ ポイントの代わりに) JavaScript を実行できますか?

Gradle は JavaScript を実行できますか?

JavaScript用の標準プラグインはありませんが、次のようなものを作ることは可能ですか?JavaExec

理由: Java 8 Nashorn および Avatar.js プロジェクトでは、アプリケーションのエントリ ポイントを Java ではなく JavaScript ファイルにすることができます。

Gradle JavaScript プラグインを検索すると、https://github.com/eriwen/gradle-js-pluginのような Web 指向のソリューションが得られます

Javaクラスを実行するためのGradle関連(build.gradleを変更せずに)

0 投票する
1 に答える
1080 参照

java - Nashorn JavaScript を実行する Gradle タスク

java -Djava.library.path=lib -jar lib/avatar-js.jar helloWorld.jsJava 8 で .js ファイルを起動し、いくつかのライブラリを渡す、の起動用の gradle /groovy コード アナログはありますか

または定義された依存関係を使用する

私が見つけた唯一の関連ドキュメント ( Gradle タスク内で jar をビルドして実行する) は、第 45 章の行です。アプリケーション プラグイン

アプリケーション プラグインは Java に依存し、JavaScript または C/C++ のタスクを定義する方法が ないCreateStartScriptsが必要String mainClassName(実行するファイルではない)

https://github.com/PaulVI/NashornSandboxのソース

0 投票する
1 に答える
1211 参照

java - JavaScript のみによる JavaFX 開発 (Nashorn)

Nashorn が Java 8 で利用できるようになったので、JavaScript ファイルだけで JavaFX アプリを作成する方法はありますか? これに関する詳細情報やビデオはどこにありますか? どのようにコンパイルしますか?

または、最低限必要なブートストラップ ファイルのセットはありますか?

0 投票する
1 に答える
2597 参照

java - 単一のエンジン インスタンスに Java-8 Nashorn JavaScript エンジン オプションを設定する方法

Nashorn がいくつかのオプションをサポートしていると読みましたが、それらはすべて文書化されていないようです。

これらはシステム プロパティを設定することで使用できますが、グローバルです。単一のエンジン インスタンスに対してプログラムで設定したいと考えています。

ここでは、希望する方法でオプションを指定することは可能ですが、そのクラスは内部であるため、この種のエラーが発生します。

これらのオプションを Java スクリプト API で設定する方法が見つかりません。

編集:

問題は、内部クラスの使用から私を保護する日食であり、nashornを使用する問題ではないようですが、質問を具体化します。

javax.script APIの一部ではない nashorn クラスを使用せずに、単一の nashorn エンジン インスタンスのオプションをセットアップする方法はありますか?

0 投票する
4 に答える
389 参照

nashorn - Nashorn : スクリプト モードでスクリプトを評価する方法

jdk 8 の新しい JavaScript エンジン nashorn の調査を開始し、いくつかの自動化タスク スクリプトを構築したいと考えていました。engine.eval() などを使用して、javascript からスクリプト モードで js ファイルを評価する方法がわかりません。

ps: 私は jjs について話しているのではありません。私は別の方法を望んでいます。javaからスクリプトモードでエンジンを評価させる