ご使用のブラウザはJavaScriptをサポートしていません。このページの完全な機能を使用するにはJavaScriptのサポートが必要です。
コンテンツへスキップ
Oracle Technology Network
ソフトウェアのダウンロード
ドキュメント
検索
Java Platform, Standard Editionトラブルシューティング・ガイド
次
目次
タイトルおよび著作権情報
はじめに
対象読者
ドキュメントのアクセシビリティについて
関連ドキュメント
規則
第I部 Javaの一般的なトラブルシューティング
1
トラブルシューティングのためのJavaの準備
1.1
トラブルシューティングのためのJavaの設定
1.2
JVMのトラブルシューティングのためのオプション/フラグの有効化
1.3
関連データの収集
1.3.1
デバッグが容易なJavaアプリケーションの作成
2
診断ツール
2.1
診断ツールの概要
2.2
Java Mission Control
2.2.1
Java Mission Controlによるトラブルシューティング
2.3
Javaフライト記録とは
2.3.1
記録の種類
2.4
フライト記録の作成方法
2.4.1
Java Mission Controlによるフライト記録の作成
2.4.2
コマンド行での起動フラグによるフライト記録の作成
2.4.3
トリガーによる自動記録
2.5
フライト記録の検査
2.5.1
検査のためのサンプルJFRの取得方法
2.5.2
範囲ナビゲータ
2.5.3
「全般」タブ
2.5.4
「メモリー」タブ
2.5.5
「コード」タブ
2.5.6
「スレッド」タブ
2.5.7
「I/O」タブ
2.5.8
「システム」タブ
2.5.9
「イベント」タブ
2.6
jcmdユーティリティ
2.6.1
jcmdユーティリティの便利なコマンド
2.6.2
jcmdユーティリティによるトラブルシューティング
2.7
ネイティブ・メモリー・トラッキング
2.7.1
NMTによるメモリー・リークの検出
2.7.2
VM内部メモリーをモニターする方法
2.8
HPROF
2.8.1
HPROFツールによるトラブルシューティング
2.8.2
ヒープ割当てプロファイルheap=sites
2.8.3
ヒープ・ダンプ・プロファイルheap=dump
2.8.4
CPU使用率サンプリング・プロファイルcpu=samples
2.8.5
CPU使用時間プロファイルcpu=times
2.9
JConsole
2.9.1
JConsoleツールによるトラブルシューティング
2.9.2
JConsoleによるローカルおよびリモート・アプリケーションのモニター
2.10
Java VisualVM
2.10.1
Java VisualVMによるトラブルシューティング
2.11
jdbユーティリティ
2.11.1
jdbユーティリティによるトラブルシューティング
2.11.2
プロセスの接続
2.11.3
同一マシン上のコア・ファイルへの接続
2.11.4
別のマシンからのコア・ファイルまたはハング・プロセスへの接続
2.12
jhatユーティリティ
2.12.1
jhatユーティリティによるトラブルシューティング
2.12.2
標準クエリー
2.12.3
カスタム・クエリー
2.12.4
ヒープ分析のヒント
2.13
jinfoユーティリティ
2.13.1
jinfoユーティリティによるトラブルシューティング
2.14
jmapユーティリティ
2.14.1
ヒープの構成と使用量
2.14.2
ヒープ・ヒストグラム
2.14.3
クラス・ローダーの統計
2.15
jpsユーティリティ
2.16
jstackユーティリティ
2.16.1
jstackユーティリティによるトラブルシューティング
2.16.2
スタック・ダンプの強制
2.16.3
コア・ダンプからのスタック・トレース
2.16.4
混合スタック
2.17
jstatユーティリティ
2.18
visualgcツール
2.19
Ctrl+Breakハンドラ
2.19.1
スレッド・ダンプ
2.19.2
デッドロックの検出
2.19.3
ヒープ・サマリー
2.20
オペレーティング・システムのネイティブ・ツール
2.20.1
DTraceツール
2.20.2
Java HotSpot VMのプローブ・プロバイダ
2.20.3
pmapツールの改善
2.20.4
pstackツールの改善
2.21
カスタム診断ツール
2.21.1
Java Platform Debugger Architecture
NMTのメモリー・カテゴリ
ポストモーテム診断ツール
ハングアップ・プロセス・ツール
モニタリング・ツール
その他のツール、オプション、変数、およびプロパティ
java.lang.managementパッケージ
java.lang.instrumentパッケージ
java.lang.Threadクラス
JVM Tool Interface
jrunscriptユーティリティ
jsadebugdデーモン
jstatdデーモン
スレッド・ダンプのスレッド状態
オペレーティング・システムに基づくトラブルシューティング・ツール
3
メモリー・リークのトラブルシューティング
3.1
Javaフライト・レコーダによるメモリー・リークのデバッグ
3.1.1
メモリー・リークの検出
3.1.2
リーク・クラスの調査
3.1.3
リークの調査
3.2
OutOfMemoryError例外の理解
3.3
OutOfMemoryErrorのかわりにクラッシュのトラブルシューティング
3.4
Java言語コードでのリークの診断
3.4.1
ヒープ・ダンプの作成
3.4.2
ヒープ・ヒストグラムの取得
3.4.3
ファイナライズを保留中のオブジェクトのモニター
3.5
ネイティブ・コードでのリークの診断
3.5.1
すべてのメモリー割当ておよび解放呼出しの追跡
3.5.2
JNIライブラリのすべてのメモリー割当ての追跡
3.5.3
オペレーティング・システム・サポートによるメモリー割当ての追跡
3.5.4
dbxデバッガによるリークの検出
3.5.5
libumemツールによるリークの検出
4
JFRを使用したパフォーマンスの問題のトラブルシューティング
4.1
JFRのオーバーヘッド
4.2
ボトルネックの検出
4.3
ガベージ・コレクションのパフォーマンス
4.4
同期パフォーマンス
4.5
I/Oパフォーマンス
4.6
コード実行パフォーマンス
第II部 JVMの問題のデバッグ
5
システム・クラッシュのトラブルシューティング
5.1
クラッシュの発生場所の特定
5.1.1
ネイティブ・コードでのクラッシュ
5.1.2
コンパイル済みコードでのクラッシュ
5.1.3
HotSpotコンパイラ・スレッドでのクラッシュ
5.1.4
VMスレッドでのクラッシュ
5.1.5
スタック・オーバーフローによるクラッシュ
5.2
回避方法の特定
5.2.1
HotSpotコンパイラ・スレッドまたはコンパイル済みコードでのクラッシュの回避
5.2.2
ガベージ・コレクション中のクラッシュの回避
5.2.3
クラス・データ共有によって発生するクラッシュの回避
5.3
Microsoft Visual C++のバージョンに関する考慮事項
6
プロセスのハングおよびループのトラブルシューティング
6.1
ループ処理の診断
6.2
ハング・プロセスの診断
6.2.1
デッドロック検出
6.2.2
デッドロックが検出されていない
6.2.3
スレッド・ダンプがない
6.3
Oracle Solaris 8スレッド・ライブラリ
7
シグナルおよび例外の処理
7.1
Oracle SolarisおよびLinuxでのシグナルの処理
7.2
Windowsでの例外処理
7.3
シグナル・チェーン
7.4
Java HotSpot VMによる例外処理
コンソール・ハンドラ
Oracle SolarisおよびLinuxで使用されるシグナル
第III部 コア・ライブラリの問題のデバッグ
8
JREでのタイムゾーン設定
8.1
ネイティブ・タイムゾーン情報およびJRE
8.1.1
使用中のタイムゾーン・データ・バージョンの判別
8.1.2
Tzupdaterの問題のトラブルシューティング
8.2
Windowsでのデフォルト・タイムゾーンの判別
8.2.1
JREが報告するデフォルト・タイムゾーンの確認
8.2.2
コントロール・パネルでの設定の確認
8.2.3
夏時間の自動調整の確認
8.2.4
コントロール・パネルでのデフォルト・タイムゾーンの設定
8.2.5
-Duser.timezoneシステム・プロパティの確認
8.2.6
Windows 7の特殊ツール
8.2.7
タイムゾーン・マッピングのJRE内部表現
第IV部 クライアントの問題のデバッグ
9
クライアントの問題の概要
9.1
Java SE Desktopテクノロジ
9.2
一般的な問題のトラブルシューティング・ステップ
9.3
問題のタイプの特定
9.3.1
Javaクライアントのクラッシュ
9.3.2
パフォーマンスの問題
9.3.3
動作の問題
9.4
基本ツール
9.5
JDWP
10
AWT
10.1
AWTのデバッグに関するヒント
10.2
レイアウト・マネージャの問題
10.3
キー・イベント
10.4
モダリティの問題
10.5
メモリー・リーク
10.6
AWTのクラッシュ
10.7
フォーカス・イベント
10.7.1
フォーカス・イベントをトレースする方法
10.7.2
ネイティブ・フォーカス・システム
10.7.3
Java Plug-inでのフォーカス・システム
10.7.4
Xウィンドウ・マネージャでサポートされているフォーカス・モデル
10.7.5
フォーカスのその他の問題
10.8
データ転送
10.8.1
ドラッグ・アンド・ドロップ・アプリケーションのデバッグ
10.8.2
データ転送に関するよくある問題
10.9
その他の問題
10.9.1
スプラッシュ画面の問題
10.9.2
トレイ・アイコンの問題
10.9.3
ポップアップ・メニューの問題
10.9.4
背景色と前景色の継承
10.9.5
AWTパネルのサイズ制限
10.9.6
X11上でポップアップ・メニューや類似コンポーネントのデバッグ中にハングアップする
10.9.7
X11でのWindow.toFront()/toBack()の動作
10.10
重量/軽量コンポーネントの混在
11
Java 2Dパイプラインのレンダリングおよびプロパティ
11.1
Oracle SolarisおよびLinux: X11パイプライン
11.1.1
X11パイプラインのピックスマップのプロパティ
11.1.2
X11パイプラインのMIT共有メモリー拡張
11.1.3
SPARC上のOracle Solaris: DGAのサポート
11.1.4
SPARC上のOracle Solaris - Java 2Dのデフォルト・ビジュアルの変更
11.2
Windows OS - DirectDraw/GDIパイプライン
11.3
Windows OS - 全画面モードでのDirect3Dパイプライン
11.4
Oracle Solaris、LinuxおよびWindowsでのOpenGLパイプライン
11.4.1
OpenGLパイプラインの有効化
11.4.2
最小限の要件
11.4.3
起動の問題の診断
11.4.4
レンダリングおよびパフォーマンスの問題の診断
最新のOpenGLドライバ
12
Java 2D
12.1
一般的なパフォーマンス問題
12.1.1
ハードウェア高速化レンダリング・プリミティブ
12.1.2
非高速化レンダリングの検出および回避のためのプリミティブ・トレース
12.1.3
低いレンダリング・パフォーマンスの原因
12.1.4
ソフトウェアのみのレンダリングのパフォーマンスの改善
12.2
テキスト関連の問題
12.2.1
テキスト・レンダリング中のアプリケーション・クラッシュ
12.2.2
テキストの外観の違い
12.2.3
メトリック
12.3
Java 2D印刷
13
Swing
13.1
Swingの一般的なデバッグ・ヒント
13.2
Swingの具体的なデバッグ・ヒント
13.2.1
不適切なスレッド
13.2.2
JComponentの子のオーバーラップ
13.2.3
表示の更新
13.2.4
モデルの変更
13.2.5
コンポーネントの追加または削除
13.2.6
不透明のオーバーライド
13.2.7
グラフィックへの永続的な変更
13.2.8
カスタム・ペイントとダブル・バッファリング
13.2.9
不透明なコンテンツ・ペイン
13.2.10
各セルのレンダラ呼出しのパフォーマンス
13.2.11
リークの可能性
13.2.12
重量コンポーネントと軽量コンポーネントの混在
13.2.13
Synthの使用
13.2.14
イベント・ディスパッチ・スレッド上のアクティビティの追跡
13.2.15
デフォルト・レイアウト・マネージャの指定
13.2.16
リスナー・オブジェクトの不適切なコンポーネントへのディスパッチ
13.2.17
コンテンツ・ペインへのコンポーネントの追加
13.2.18
ドラッグ・アンド・ドロップのサポート
13.2.19
コンポーネントの親は1つ
13.2.20
JFileChooserとWindowsショートカットの問題
14
国際化
14.1
国際化およびローカリゼーションのトラブルシューティング
15
Javaサウンド
15.1
Javaサウンドの問題のトラブルシューティング
16
アプレットとJava Web Startアプリケーション
16.1
構成の問題
16.1.1
検証
16.1.2
一般的な構成の問題
16.1.3
Javaラインタイムの管理
16.1.4
JREへのパラメータの受渡し
16.1.5
Javaデプロイメント・ホーム
16.1.6
デプロイメントのトレース
16.1.7
デプロイメント・キャッシュ
16.1.8
ネットワーク構成
16.2
アプレットのトラブルシューティング
16.2.1
アプレットを起動するためのプラグインのチート・シート
16.2.2
ブラウザまたはJavaプロセスのクラッシュ
16.2.3
応答のないWebページ
16.3
セキュリティ・ダイアログの回避
16.3.1
署名付きのアプリケーション
16.3.2
混合コードの問題
16.4
開発のヒント
第V部 バグ・レポートの提出
17
バグ・レポートの提出
17.1
更新リリースに含まれる修正のチェック
17.2
バグ・レポートの提出の準備
17.3
バグ・レポート用のデータの収集
17.3.1
ハードウェアの詳細
17.3.2
オペレーティング・システムの詳細
17.3.3
Java SEのバージョン
17.3.4
コマンド行オプション
17.3.5
環境変数
17.3.6
致命的エラー・ログ
17.3.7
コア・ダンプまたはクラッシュ・ダンプ
17.3.8
問題の詳細な説明
17.3.9
ログおよびトレース
17.3.10
トラブルシューティング・ステップの結果
17.4
コア・ダンプの収集
17.4.1
Oracle Solarisでのコア・ダンプの収集
17.4.2
Linuxでのコア・ダンプの収集
17.4.3
コア・ファイルを取得しない理由
17.4.4
Windowsでのクラッシュ・ダンプの収集
第VI部 付録
A
致命的エラー・ログ
致命的エラー・ログの場所
致命的エラー・ログの説明
ヘッダー形式
スレッド・セクションの形式
プロセス・セクションの形式
システム・セクションの形式
B
Java 2Dのプロパティ
Oracle SolarisおよびLinuxでのプロパティ
Windows上のプロパティ
C
環境変数とシステム・プロパティ
JAVA_HOME
環境変数
JAVA_TOOL_OPTIONS
環境変数
java.security.debug
システム・プロパティ
D
コマンド行オプション
Java HotSpot VMコマンド行オプション
その他のコマンド行オプション
E
このリリースのツールのサマリー
次