2016-07-21 13 views
4

動的にロードして、JavaScriptコードをディスク上のYAMLファイルに格納して実行しています。私はスタンドアロンのJSファイルからロードしていなくても、(intelliJを使って)JSコードをデバッグすることが可能かどうかを知りたいです。IntelliJとNashornエンジンで動的にロードされたJavaScriptコードをデバッグ

NashornScriptEngineFactory nashornFactory = new NashornScriptEngineFactory(); 
ScriptEngine engine = nashornFactory.getScriptEngine(); 
engine.eval("var a = 1 + 1;\nprint(a);"); 

私は2行目(「印刷」関数呼び出し)にブレークポイントを設定するにはどうすればよいとどのように私は、変数「A」の値を調べてください:問題の説明を簡単にするために、次のJavaコードを考えてみ?これが不可能な場合は、最善の回避策は何でしょうか?

答えて

2

このブログ投稿https://blogs.oracle.com/sundararajan/remote-debugging-of-nashorn-scripts-with-netbeans-ide-using-debugger-statementsに基づいて、リモートJavaデバッガを接続して処理することができます。

IntelliJ IDEAでこれを行うには、新しいリモート実行構成を作成します。

取り付けた後、JavaScriptのコマンドを使用します。

debugger; 

これは、それが添付されている場合破るためにデバッガを強制します。変数ウィンドウ内の変数の値を検査することができます。

IntelliJを添付することができない場合は、ブラウザのインス​​ペクタ/デバッガを開き、同じ行のJavaScriptを使用すると、ブラウザのデバッガがその行でブレークします。

+1

upvotedしかし、私は少し長いと思った...どのようにNashornScriptEngineに接続しますか? IntelliJはそれをしますか? –

関連する問題