2015-01-09 12 views
9

IntelliJ IDEAでデバッグ中に問題が発生しましたが、javafxアプリケーションのリスナーのブレークポイントでデバッグモードでハングします。私はヒープスペースを増やそうとしましたが、それは助けにはなりません。たぶん誰かがこのような問題を抱えていたかもしれません。私に何をすべきか教えてください。IDEはJava fxアプリケーションのブレークポイントでデバッグモードでハングします

答えて

30

は、VMパラメータとしてこれを設定します。

-Dsun.awt.disablegrab=true 

それはなります台無しにドラッグ&デバッガが一時停止している間に画面にアーティファクトを残しますが、デバッグできるようになります。これは、JavaFXスレッドをブロックするたびに発生します。

+0

同じ問題...これは私のために働く...ありがとう。 – Ben

+0

ありがとう、私はこの1つで私の髪を引っ張っていた。 –

+0

onDragDroppedイベントハンドラでブレークポイントを使用していません –

2

これは簡単な理由で発生する可能性があります。アプリケーションには、モーダルダイアログやポップアップや開いているメニューなど、デスクトップにロックがあります。その後、ブレークポイントで停止します。これはIDEに通知します。 IDEはあなたのデスクトップ上で何かをしようとしますが、アプリケーションは依然としてデスクトップ全体にロックをかけるので、デッドロックはできません。

Chrononのようなツールを使用すると、プログラム全体が記録され、タイムライン上で前後に移動することができます。

最後のオプションは、ログまたはpoor man's debuggerSystem.out)です。

[EDIT]

それは20個のパラメータの等しくないのSystem.outに確認するのは難しいです。

それは実際には非常に簡単です:

System.out.println("check"); 
if(!a1.equals(b2)) System.out.println(a1+"!="+b1); 

そして、最後の行を複製します。そうすれば、何かが実際に面白いとき(19個の等しいパラメーターではない)にのみ出力が得られます。あなたはaYからaXを区別できない場合、出力にいくつかのパターンを追加します(つまり、両方ともtrueです):

if(!a1.equals(b2)) System.out.println("a1:"+a1+"!="+b1); 
+0

2つのオブジェクトが20個のパラメータでチェックされていて、それがfalseである場合、実際には真であると期待されますが、System.outでチェックするのは難しいです。私の同僚の誰もリスナーでのデバッグにこのような問題はありませんが、何が間違っているのか分からず、私たちはすべて同じハードウェア、OS、環境を持っています。 – user3872496

+0

私はここでの説明が好きですが、解決策はありません。私は私のデバッガをUbuntu上で動作させようとしています。私はOSXマシン上で同じIDEと同じアプリケーションでこれらの問題を抱えていません。私の選択肢は何ですか? – user2223059

+0

@ user2223059受け入れられた回答、コマンドロギング、[Chronon](http://chrononsystems.com/)でコマンドラインオプションを使用するか、Linux用の新しいロックフリーデスクトップを作成することができます。 –

関連する問題