51

私はかなり奇妙な立場にいます(Java初心者の観点から):

  1. Eclipseを使用して、本質的に(バッチ)テキスト* .csvファイルを読み取り、その内容を「評価」し、結果を* _out.csvテキストファイルに書き込む「Javaプログラム」(クラスを含むいくつかの.javaファイル)を作成しました。入力ファイルを見つけるために、「ファイル チューザー」を使用します (ここからサンプルを入手: http://docs.oracle.com/javase/tutorial/uiswing/components/filechooser.html )

  2. すべてのコードをデバッグしましたが、デバッガーを使用して動作します。

  3. 私はコード(他のすべてを順番に呼び出すメインクラス)を実行しましたが、Eclipseで動作します。

  4. プロジェクトのすべてのコンテンツを「実行可能なjar」ファイルにエクスポートしました。

ファイル チューザーは別として、これは主に読み取りと書き込みを行う "バッチ" であることに注意してください。ユーザー インターフェイスはほとんどありません。Eclipse では、" if(debug) System.out.print("something to print"); " のようなものを使用していくつかの内部結果を示しました。

上記のすべてが機能しました!

ここで、実行可能な jar を開始します (Win/XP では jar ファイルをダブルクリックします)。ファイル チューザーが表示され、使用できますが、入力ファイルを選択した後は...それ以上は何もありません: (ユーザー インターフェースがありません) )ファイルが読み取られたかどうかはわかりません。生成された出力ファイルは表示されません。また、中間デバッグメッセージをリストする「コンソール」さえありません。 -debug 変数を TRUE に設定してエクスポートします。

実行中の jar (VB の MsgBox など) を「ランタイム デバッグ」する方法はありますか? 「有効にする」または調べることができるある種の「ログファイル」はありますか?(明らかに、私の jar は結果ファイルを書き込んでいないので、*.log を書き込もうとすることもできません) また、マシンに Eclipse 以外をインストールすることはできません (そして、それが実行されたのは幸運でした)。 )、通常の開発者ツール、ユーティリティ、その他の便利なものはありません。

4

4 に答える 4

121

http://www.eclipsezone.com/eclipse/forums/t53459.html

基本的に次のように実行します。

-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=1044

アプリケーションは、起動時に、別のソースから接続するまで待機します。

したがって、CLI コマンドは次のようになります。

java -jar yourJarFileName.jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=1044
于 2013-11-07T17:16:30.660 に答える
66

java特別なオプションを指定してコマンドを起動すると、JVM のデバッグ機能を有効にすることができます。

java -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=y -jar path/to/some/war/or/jar.jar

jar.jarコマンドラインでそのように起動すると、次のようになります。

  • このJVM インスタンスをサーバー ( ) の役割に置き、ポート 8000 ( )server=yをリッスンします。address=8000
  • Listening for transport dt_socket at address: 8000stdoutに書き込む
  • suspend=y次に、デバッガーが接続するまでアプリケーションを一時停止します ( )。このシナリオでは、デバッガーがクライアントとして機能します。

デバッガーを選択するための一般的なオプションは次のとおりです。

  • Eclipse Debugger: [ Run ] -> [ Debug Configurations] の下で... -> [ Remote Java Application ] を選択-> [ New launch configuration ] ボタンをクリックします。このデバッグ構成の任意の名前、接続タイプ: 標準 (ソケット接続)を指定し、接続プロパティとしてエントリHost: localhostPort: 8000を指定します。変更を適用し、 [デバッグ] をクリックします。Eclipse デバッガーが JVM に正常に接続された時点で、jar.jar実行が開始されます。
  • jdb コマンドライン ツール: で起動しますjdb -connect com.sun.jdi.SocketAttach:port=8000
于 2016-07-13T17:04:02.743 に答える