JBKプラグインでのデバッグ
Javaコンソール出力をファイル出力に変更する方法
Javaコンソールに出力される情報をファイルに出力することにより、デバッグ情報を保存することができます。デバッグ情報をファイルに出力することによって、アプレットがダウンして、コンソールが強制的に閉じてしまった場合でも、デバッグ情報を採取することができます。
以下に、Java コンソールの情報を出力ファイルに記録するサンプルアプリケーションを使用して、ファイルに出力する方法を説明します。
画面-2 サンプルアプリケーション画面

Javaコンソール出力からファイル出力へ変更するためには、リスト-3のような処理を行うプログラムを作成して下さい。 サンプルアプリケーションでは、「ファイル出力を開始」ボタンを押下すると、Javaコンソール出力からファイル出力へ変更する処理になっています。
リスト-3
|
<省略>
// コンソール出力用ファイル(任意に変更可能)
private static final String OUTPUT_FILE = "C:\\temp\\console.txt";
<省略>
/**
* アプレット上のボタンが押されたときの処理
*/
public void actionPerformed(ActionEvent e) {
String label_str = e.getActionCommand();
if (label_str.equals(LABEL_START)) {
// ボタンラベルが"ファイル出力を開始"の場合
// ファイル出力を開始する
try {
fileOut = new PrintStream(new
FileOutputStream(OUTPUT_FILE), true);
System.setOut(fileOut);
System.setErr(fileOut);
} catch (IOException exc) {
exc.printStackTrace();
}
btnToFile.setLabel(LABEL_STOP);
} else if(label_str.equals(LABEL_STOP)) {
// ボタンラベルが"ファイル出力を終了"の場合
// ファイル出力を終了する
System.setOut(sysOut);
System.setErr(sysErr);
fileOut.close();
btnToFile.setLabel(LABEL_START);
} else if(label_str.equals(LABEL_TIME)) {
// ボタンラベルが"現在の時刻を出力"の場合
// 現在の時刻を出力する
System.out.println("現在の時刻は\""
+ new Date().toString() + "\"です。");
}
}
|
(注)ファイル出力を行う場合は、必ずポリシーファイルにファイル書き込み権限を付与してください。
サンプルアプリケーションには、以下の2つのボタンがあります。
- 「ファイル出力を開始」ボタン
- コンソール出力から、ファイル出力へ変更します。
ボタンを押下すると、ボタンラベルが「ファイル出力を終了」に変更します。
ボタンラベルが、「ファイル出力を終了」の状態でボタンを押下すると、ファイル出力からJavaコンソール出力へ戻すことができます。
- 「現在の時刻を出力」ボタン
- 現在の時刻を出力します。
出力先は、「ファイル出力を開始」を押下している場合はファイルへ出力され、それ以外はJavaコンソールへ出力されます。
Javaコンソールのデバッグ情報を、ファイル出力するように変更します。サンプルアプリケーションの「ファイル出力を開始」ボタンを押下すると、画面-3になります。
画面-3

ボタンラベルが「ファイル出力を終了」に変わります。これで、ファイルに出力する準備は完了しました。次に、「現在の時刻を出力」ボタンを押下します。するとC:\temp配下のconsole.txtファイルにリスト-4
のような文字列が出力されます。
リスト-4
| 現在の時刻は"Wed Nov 27 18:29:50 JST 2002"です。 |
「ファイル出力を終了」ボタンを押下するまでの間は、Javaコンソールに出力される情報はすべてC:\temp配下のconsole.txtファイルに出力されます。
Javaコンソールに、出力先を戻すためには、「ファイル出力を終了」ボタンを押下します。すると、ボタンラベルが「ファイル出力を開始」に、戻ります。この状態で、「現在の時刻を出力」ボタンを押下すると、現在の時刻が、Javaコンソールに出力されます。
画面-4
