• ベストアンサー

java実行時のエラーメッセージについて

パソコンはWindows98です。例外処理が組み込まれていないGUIアプリケーションをMS-DOSを使って実行した場合、数字を入力するべき所にアルファベットを入力すると当然MS-DOSにエラーメッセージが表示されますが、MS-DOSにはスクロールバー機能がなく、全てのメッセージが画面内に収まらず最初のほうのメッセージを見ることができません。>java で実行する時に、エラーメッセージファイルを作成するようなコマンドなど、全てのエラーメッセージを見る良い方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • snuffy
  • ベストアンサー率53% (33/62)
回答No.2

Win98ならではの痛い問題ですね。 Win2000系ならば、MS-DOSにスクロール・バーがあるし、パイプを通して(#1の方がお答えしていますね)テキストファイルにメッセージを書き込むことができます。 Win98でパイプを使う為には、テキスト・エディタ等独自の機能を使うしかありません。 ここでは、秀丸を使ったパイプの方法をご紹介します。 ■手順 (1)WEBサイト等からバイナリを入手し、秀丸をインストールする (2)エディタを立ち上げる (3)右上「その他」のプルダウンから「プログラムの実行」を選ぶ (4)「command.com /k java ~(いつものjavaコマンド)> 出力先」を入力して実行 Hogeというクラスの実行例  command.com /k java Hoge > C:\java\src\test\err.txt (↑一行で書く) ※注意 これは、秀丸上からMS-DOSを立ち上げ、秀丸のパイプ機能を使っているのです。実行ディレクトリは確か秀丸のインストール先なので、ソースパスをjava実行マシーンに教えてあげないとダメだと思います。つまり、上の例は完全でないということです。MS-DOSから「java」とだけ打つとコマンド一覧が出ますので、そこで調べてみてください。確か、java -sourcepath C:\java\src のような書式だったと思います。 以上です。頑張ってください。

hyahhoo
質問者

お礼

Win2000が欲しいです。。。。。秀丸を使ってテキストファイルに出力することができました!ありがとうございました!!!

その他の回答 (1)

  • takaP-
  • ベストアンサー率79% (83/105)
回答No.1

ランタイムエラーならば main() の冒頭で。。。 public static void main(String[] args){   System.setErr(System.out); と、java.lang.System#setErr() メソッドを使い、標準エラー出力場所を変更すれば良いと思います。 上記のように System.out と指定すると、標準出力へのエラー吐き出しになります。 実行時に。。。 >java Hoo | more とすれば、Hoo クラスのランタイムエラーを見る事が出来ます。 または。。。 >java Hoo > error.txt とする事で、パイプ処理を使って error.txt (任意のファイル)へエラーを書き込むことも可能です。 後は、直接ファイルを開くなり、>type error.txt | more で、プロンプト上で見るなりすれば良いです。 どうしても、標準出力への書き出しでは問題があるのならば、java.lang.System#setErr() への引数を、任意のファイルから拡張した java.io.PrintStream にすればよいでしょう。

hyahhoo
質問者

お礼

私のやり方がまずかったのか、うまくできませんでした。 >type error.txt | more で、プロンプト上で見るなりすれば良いです。 これだけはなりました。ありがとうございました。

関連するQ&A

専門家に質問してみよう