System.errを再初期化するJavaまたかなり間が空いてしまいましてすみません。感あふれるネタですが、知らなかったのでメモ。下記ページで知りました。System.errの再初期化は、下記のようにします。FileDescriptorを使うのがポイントです。FileOutputStream(FileDescriptor.err)));ただし、これだけでは完全ではありません。入っているのを退避しておいて、後で戻す方法でも、もちろんOKです。これについても後述します。いう時に使う?使う場面は限られていて、単体テスト時や、ツール内で標準出力をリダイレクトする場合などに使用します。IDEのランチャーや、Webアプリケーションコンテナーなどで(たぶん)使われています。通常のアプリケーションではまず使用しません。}}のようにしてSystem.outを書き換えたりすることがあります。問題は、これを元に戻す方法です。JUnitの場合なら戻さなくても問題になることはあまり無いとは思いますが、レアなケースで元に戻す必要がある時にどうすれば良いのかを考えました。退避する方法は確実ではありますが、毎回退避するのも、どこに退避しておくかを考えるのも、面倒です。今回の方法は、要するに「グローバル変数を使って再初期化ができるよ!」ということです。Systemクラス初期化時はどうなっているのか?前述の方法で上手く行っているようですが、この方法で本当にSystemクラス初期化時と同じになっているのでしょうか。props.getProperty("sun.stderr.encoding")));となっています。setErrと同じですので問題ないでしょう。newPrintStreamとシステムプロパティーのところを追加する必要がありそうです。実装する以上を踏まえて、それぞれの再初期化を実装し、ユーティリティークラスにまとめました。}}これで初期状態と同じになるはずです。文字列switchのからくり遅れ馳せ乍ら、Java7について自分なりにまとめてみます。最初は...2009-08-29参照可能なクラスのリストを取得したい「Java1.4&ライブラリ非依存」という条件で。(2)プロフィールid:argiusはてなブログをはじめよう!argiusさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。