18

JVM を完全にフリーズさせるアプリケーションにバグが見つかりました。生成されたスタック トレースは、開発者に貴重な情報を提供するので、Java コンソールから取得したいと考えています。JVM がクラッシュすると、コンソールがフリーズし、含まれているテキストをコピーできなくなります。

Java コンソールをファイルに直接パイプする方法や、Java アプリケーションのコンソール出力にアクセスするその他の方法はありますか?

更新:コードを変更せずに言及するのを忘れていました。私は手動テスターです。

更新 2: これは Windows XP であり、実際には Web Start アプリケーションです。出力のパイピング

javaws jnlp-url
動作しません (空のファイル)。

4

5 に答える 5

23

実際には、Java コントロール パネルでトレースを有効にすることができます。これにより、トレース ファイル内の Java コンソールで終了するものはすべてパイプされます。

ログ ファイルは次の場所に保存されます。

  • <user.home>/.java/deployment/log (Unix/Linux の場合)
  • <User Application Data Folder>\Sun\Java\Deployment\log on Windows
  • /~/Library/Caches/Java/OS X のログ
于 2009-03-09T14:51:01.677 に答える
12

(コードを変更できる場合)System.outフィールドを別の値に設定できます。

System.setOut(new PrintStream(new FileOutputStream(fileName)));

からスクリプトを実行している場合 ( 経由でプログラムを呼び出す場合java)、次のUnixことができます。

/path/to/script.sh >& path/to/output.log
于 2009-03-09T14:14:58.753 に答える
8

Mac 10.8.2 では、ログは にあります/Users/<userName>/Library/Application Support/Oracle/Java/Deployment/log/

Java コントロール パネルからログを有効にする前に。オプション " Enable logging" はタブ " Advanced" にあります。Java コントロール パネルは " " から起動できましたSystem preferences

于 2012-11-06T12:42:28.643 に答える
0

このガイドを試してみてください。また、「System.setOut(fileStream);」、「System.setErr(fileStream);」を設定する方法についても説明します。

于 2014-03-26T11:03:36.760 に答える