プライマリ・コンテンツに移動
Java Platform, Standard Editionトラブルシューティング・ガイド
リリース9
E90916-02
次
目次
タイトルおよび著作権情報
はじめに
対象読者
ドキュメントのアクセシビリティについて
関連ドキュメント
表記規則
第I部 Javaの一般的なトラブルシューティング
1
トラブルシューティングのためのJavaの準備
トラブルシューティングのためのJavaの設定
JVMのトラブルシューティングのためのオプションおよびフラグの有効化
関連データの収集
デバッグが容易なJavaアプリケーションの作成
2
診断ツール
診断ツールの概要
Java Mission Control
Java Mission Controlによるトラブルシューティング
Javaフライト記録とは
記録の種類
フライト記録の作成方法
Java Mission Controlによるフライト記録の作成
コマンド行での起動フラグによるフライト記録の作成
トリガーによる自動記録
フライト記録の検査
検査のためのサンプルJFRの取得方法
範囲ナビゲータ
「全般」タブ
「メモリー」タブ
「コード」タブ
「スレッド」タブ
「I/O」タブ
「システム」タブ
「イベント」タブ
jcmdユーティリティ
jcmdユーティリティの有用なコマンド
jcmdコマンド・ユーティリティを使用したトラブルシューティング
ネイティブ・メモリー・トラッキング
NMTによるメモリー・リークの検出
VM内部メモリーをモニターする方法
JConsole
JConsoleツールによるトラブルシューティング
JConsoleによるローカルおよびリモート・アプリケーションのモニター
jdbユーティリティ
jdbユーティリティによるトラブルシューティング
プロセスの接続
同一マシン上のコア・ファイルへの接続
別のマシンからのコア・ファイルまたはハング・プロセスへの接続
jinfoユーティリティ
jinfoユーティリティによるトラブルシューティング
jmapユーティリティ
ヒープの構成と使用量
ヒープ・ヒストグラム
Permanent世代の統計
jpsユーティリティ
jstackユーティリティ
jstackユーティリティによるトラブルシューティング
コア・ダンプからのスタック・トレース
混合スタック
jstatユーティリティ
visualgcツール
Ctrl+Breakハンドラ
スレッド・ダンプ
デッドロックの検出
ヒープ・サマリー
オペレーティング・システムのネイティブ・ツール
DTraceツール
Java HotSpot VMのプローブ・プロバイダ
pmapユーティリティの改善
pstackユーティリティの改善
カスタム診断ツール
Java Platform Debugger Architecture
NMTのメモリー・カテゴリ
ポストモーテム診断ツール
ハングアップ・プロセス・ツール
モニタリング・ツール
その他のツール、オプション、変数、およびプロパティ
java.lang.managementパッケージ
java.lang.instrumentパッケージ
java.lang.Threadクラス
JVM Tool Interface
jrunscriptユーティリティ
jsadebugdデーモン
jstatdデーモン
スレッド・ダンプのスレッド状態
オペレーティング・システムに基づくトラブルシューティング・ツール
3
メモリー・リークのトラブルシューティング
Javaフライト・レコーダを使用したメモリー・リークのデバッグ
メモリー・リークの検出
リーク・クラスの調査
リークの調査
OutOfMemoryError例外の理解
OutOfMemoryErrorのかわりにクラッシュのトラブルシューティング
Java言語コードでのリークの診断
ヒープ・ヒストグラムの取得
ファイナライズを保留中のオブジェクトのモニター
ネイティブ・コードでのリークの診断
すべてのメモリー割当ておよび解放呼出しの追跡
JNIライブラリのすべてのメモリー割当ての追跡
オペレーティング・システム・サポートによるメモリー割当ての追跡
dbxデバッガによるリークの検出
libumemツールによるリークの検出
4
JFRを使用したパフォーマンスの問題のトラブルシューティング
JFRのオーバーヘッド
ボトルネックの検出
ガベージ・コレクションのパフォーマンス
同期パフォーマンス
I/Oパフォーマンス
コード実行パフォーマンス
第II部 JVMの問題のデバッグ
5
システム・クラッシュのトラブルシューティング
クラッシュの発生場所の特定
ネイティブ・コードでのクラッシュ
コンパイル済コードでのクラッシュ
HotSpotコンパイラ・スレッドでのクラッシュ
VMスレッドでのクラッシュ
スタック・オーバーフローによるクラッシュ
回避方法の特定
HotSpotコンパイラ・スレッドまたはコンパイル済みコードでのクラッシュの回避
ガベージ・コレクション中のクラッシュの回避
クラス・データ共有によって発生するクラッシュの回避
Microsoft Visual C++のバージョンに関する考慮事項
6
プロセスのハングおよびループのトラブルシューティング
ループ処理の診断
ハング・プロセスの診断
デッドロックが検出された
デッドロックが検出されなかった
スレッド・ダンプがない
Oracle Solaris 8スレッド・ライブラリ
7
シグナルおよび例外の処理
Oracle Solaris、LinuxおよびmacOSでのシグナルの処理
Windowsでの例外処理
シグナル・チェーン
Java HotSpot VMによる例外処理
コンソール・ハンドラ
Oracle Solaris、LinuxおよびmacOSで使用されるシグナル
第III部 コア・ライブラリの問題のデバッグ
8
JREでのタイムゾーン設定
ネイティブ・タイムゾーン情報およびJRE
使用中のタイムゾーン・データ・バージョンの判別
TZupdaterの問題のトラブルシューティング
Windowsでのデフォルト・タイムゾーンの判別
JREが報告するデフォルト・タイムゾーンの確認
コントロール・パネルでの設定の確認
夏時間の自動調整の確認
コントロール・パネルでのデフォルト・タイムゾーンの設定
-Duser.timezoneシステム・プロパティの確認
Windows 7の特別なツール
タイムゾーン・マッピングのJRE内部表現
第IV部 クライアントの問題のデバッグ
9
クライアントの問題の概要
Java SE Desktopテクノロジ
一般的な問題のトラブルシューティング手順
問題のタイプの特定
Javaクライアントのクラッシュ
パフォーマンスの問題
動作の問題
基本ツール
Java Debug Wire Protocol
10
AWT
AWTのデバッグに関するヒント
レイアウト・マネージャの問題
キー・イベント
モーダリティの問題
AWTのクラッシュ
フォーカス・イベント
フォーカス・イベントをトレースする方法
ネイティブ・フォーカス・システム
Java Plug-inでのフォーカス・システム
Xウィンドウ・マネージャでサポートされているフォーカス・モデル
フォーカスのその他の問題
データ転送
ドラッグ・アンド・ドロップ・アプリケーションのデバッグ
データ転送に関するよくある問題
その他の問題
スプラッシュ画面の問題
トレイ・アイコンの問題
ポップアップ・メニューの問題
背景色または前景色の継承
AWTパネルのサイズ制限
X11上でポップアップ・メニューや類似コンポーネントのデバッグ中にハングアップする
X11でのWindow.toFront()/toBack()の動作
重量または軽量コンポーネントの混在
11
Java 2Dパイプラインのレンダリングおよびプロパティ
Oracle SolarisおよびLinux: X11パイプライン
X11パイプラインのピックスマップのプロパティ
X11パイプラインのMIT共有メモリー拡張
SPARC上のOracle Solaris: DGAのサポート
SPARC上のOracle Solaris - Java 2Dのデフォルト・ビジュアルの変更
Windows OS - DirectDraw/GDIパイプライン
Windows OS - 全画面モードでのDirect3Dパイプライン
Oracle Solaris、LinuxおよびWindowsでのOpenGLパイプライン
OpenGLパイプラインの有効化
最小要件
起動の問題の診断
レンダリングおよびパフォーマンスの問題の診断
最新のOpenGLドライバ
12
Java 2D
一般的なパフォーマンス問題
ハードウェア高速化レンダリング・プリミティブ
非高速化レンダリングの検出および回避のためのプリミティブ・トレース
低いレンダリング・パフォーマンスの原因
ソフトウェアのみのレンダリングのパフォーマンスの改善
テキスト関連の問題
テキスト・レンダリング中のアプリケーション・クラッシュ
テキストの外観の違い
メトリック
Java 2D印刷
13
Swing
Swingの一般的なデバッグ・ヒント
Swingの具体的なデバッグ・ヒント
不正なスレッド処理
JComponentの子のオーバーラップ
表示の更新
モデルの変更
コンポーネントの追加または削除
不透明のオーバーライド
グラフィックへの永続的な変更
カスタム・ペイントとダブル・バッファリング
不透明なコンテンツ・ペイン
各セルのレンダラ呼出しのパフォーマンス
リークの可能性
重量コンポーネントと軽量コンポーネントの混在
Synthの使用
イベント・ディスパッチ・スレッド上のアクティビティの追跡
デフォルト・レイアウト・マネージャの指定
リスナー・オブジェクトの不適切なコンポーネントへのディスパッチ
コンテンツ・ペインへのコンポーネントの追加
ドラッグ・アンド・ドロップのサポート
コンポーネントの親は1つ
JFileChooserとWindowsショートカットの問題
14
国際化
国際化およびローカリゼーションのトラブルシューティング
15
Javaサウンド
Javaサウンドの問題のトラブルシューティング
16
アプレットとJava Web Startアプリケーション
構成の問題
検証
一般的な構成の問題
Javaランタイムの管理
JREへのパラメータの受渡し
Javaデプロイメント・ホーム
デプロイメントのトレース
デプロイメント・キャッシュ
ネットワーク構成
アプレットのトラブルシューティング
アプレットを起動するためのプラグインのチート・シート
ブラウザまたはJavaプロセスのクラッシュ
応答のないWebページ
セキュリティ・ダイアログ・ボックスの回避
署名付きのアプリケーション
混合コードの問題
開発のヒント
第V部 バグ・レポートの提出
17
バグ・レポートの提出
更新リリースに含まれる修正のチェック
バグ・レポートの提出の準備
バグ・レポート用のデータの収集
ハードウェアの詳細
オペレーティング・システムの詳細
Java SEのバージョン
コマンド行オプション
環境変数
致命的エラー・ログ
コア・ダンプおよびクラッシュ・ダンプ
問題の詳細な説明
ログおよびトレース
トラブルシューティング手順からの結果
コア・ダンプの収集
Oracle Solarisでのコア・ダンプの収集
Linuxでのコア・ダンプの収集
コア・ファイルを取得しない理由
Windowsでのクラッシュ・ダンプの収集
付録
A
致命的エラー・ログ
致命的エラー・ログの場所
致命的エラー・ログの説明
ヘッダー形式
スレッド・セクションの形式
プロセス・セクションの形式
システム・セクションの形式
B
Java 2Dのプロパティ
Oracle SolarisおよびLinuxでのプロパティ
Windows上のプロパティ
C
環境変数とシステム・プロパティ
JAVA_HOME環境変数
JAVA_TOOL_OPTIONS環境変数
java.security.debugシステム・プロパティ
D
コマンド行オプション
Java HotSpot VMコマンド行オプション
その他のコマンド行オプション
E
このリリースのツールのサマリー