• ベストアンサー

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

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

  • Java
  • 回答数2
  • ありがとう数3

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

  • ベストアンサー
  • 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

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

    コンパイル後、実行するとコードはどのようなものでも、同様のエラーメッセージが表示されます。 例えば、超基本の下記のソースでも表示されます。 //Sample01.java class Sample01 { public static void main (String args[]) { System.out.println("Hello World"); } } エラーメッセージは同様に、 「Excption in thread "main"java.lang.NoClassDefFoundError: Sample01」 と表示されてしまいます。 このエラーの対処方法をお願いします。

    • ベストアンサー
    • Java
  • Javaプログラムの実行時エラー

     Javaの学習をしている初心者です 今までメモ帳でコーディングしてコマンドプロンプトでコンパイル・実行していましたが、本日も同様のことをしていたところ、実行を要求するとException in thread "main" java.lang.NoClassDefFoundError: なるエラーが出ました。 このエラーはコーディング時のクラス名とファイル登録時のクラス名が異なる場合に出ていたような気がします。 今回は今まで作成したプログラム全部で、実行するとこのエラーが出ます。新しく作成したものもだめです。…コンパイルは うまくいきますが、実行するとこのエラーが出ます。  どうしたらよいかどなたかお教えください。

  • javacコマンドの実行で、スクロールバーか1画面ずつ表示する方法を教えてください.

    Windows98se 環境でMS-DOSでjavacを実行した時に、メッセージが長くて1画面に収まらない事があります.全てのメッセージを見るために、 「MS-DOSにスクロールバーをつける」あるいは、 「1画面ずつ表示する」方法を教えてください.

  • JAVAで実行エラー。

    下記のエラーメッセージが出ました。 どうしてでしょうか? コンパイラーは通りました。 実行でエラ-になりました。 度々すみません。 解説のほど、宜しくお願い申し上げます。 C:\JAVA>java Monster エラー: メイン・メソッドがクラスMonsterで見つかりません。次のようにメイン・メソッドを定義してください。 public static void main(String[] args) またはJavaFXアプリケーション・クラスはjavafx.application.Applicationを拡張する必要があります class Monster { int power; void setPower(int p) { power = p; } void walk() { System.out.println("てくてく・・・"); power--; } }

    • ベストアンサー
    • Java
  • Winでコマンドプロンプトを出さずに実行

    Windows上でJAVAのGUIを使ったプログラムを作りました。 実行するときは java クラス名 と入力して実行しますが、 せっかく便利なプログラムをJAVAで書いても、常に黒いプロンプト画面が残るのはいやです。 コマンドプロンプト画面を出さずにJAVAのGUIつきのプログラムを実行する方法があったら教えてください。

    • ベストアンサー
    • Java
  • Javaプログラムでコマンド実行時のエラー

    Webアプリにて下記プラグラムを実行(Tomcat上で実行)したところ以下のような例外が でました。 cd /home/test/geniatagger-3.0.1 ディレクトリに移動するコマンドで失敗しているようですが Teraterm上で手入力で実行すると実行できます。 何が原因かわかりますでしょうか。 【例外】 java.io.IOException: Cannot run program "cd /home/test/geniatagger-3.0.1": java.io.IOException: error=2, No such file or directory at java.lang.ProcessBuilder.start(ProcessBuilder.java:475) at java.lang.Runtime.exec(Runtime.java:610) at java.lang.Runtime.exec(Runtime.java:483) 【実行したプログラム】 String[] command = {"cd /home/test/geniatagger-3.0.1", "./geniatagger", "I had a pen."}; Process process = Runtime.getRuntime().exec(command); //exec()が非同期実行であるため実行結果が返ってくるまで待つ int no = process.waitFor(); BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream())); String str = ""; while (in.ready()) { str = in.readLine(); System.out.println("segmentate=" + str); } in.close();

    • ベストアンサー
    • Java
  • java 実行コマンドについて

    java の実行コマンドについての質問です。java実行コマンドでは実行したいファイルを相対パスで指定できないのでしょうか? 具体的には、 現在、実行したいプログラムは ~/program/sample/Test.class となっています。 カレントディレクトリは~/programで、次のようなコマンドを行いました。 ~/program$ java sample/Test すると Exception in thread "main" java.lang.NoClassDefFoundError: sample/Test (wrongname: Test) という例外が出ました。 ~/program$ java -classpath sample Test を行えば実行できるのですが、java実行コマンドでは相対パスで実行ファイルを指定することはできないのでしょうか? (javacコマンドでは相対パスでコンパイルできる、つまりコンパイルしたいファイルが~/program/sample/Test.javaならば ~/program$ javac sample/Test.java でコンパイルできるので、これの類似でjavaコマンドでも相対パスで実行できるのではないかと考えたのですが。)

    • ベストアンサー
    • Java
  • javac のエラーメッセージについて

    初めまして。java初心者ですよろしくお願いします。 MS-DOSプロンプトを動かしjavac ファイル名.javaとコマンドすると、"This program cannot be run in DOS-MODE."というエラーメッセージが表われます。過去の回答の中にあったPATHの指定もすべて行いました。それでも上記のメッセージが出てコンパイルできませんでした。 OSは98SecondEditionを使用しています。 どなたか、このエラーメッセージの原因と解決方法をご存知の方がいらっしゃればお答えをお願いします。

    • ベストアンサー
    • Java
  • DVDStylerで書き込むときに「コマンド実行のエラー」が出る

    いつものようにDVDに書き込もうとする(ISOを作ろうとする)と、 いつもは出ていなかったのに 「コマンド実行のエラー:dvdauthor -o ・・・」と出てきます。 一応、入力ファイルや出力先などのディレクトリはすべて、 アルファベットです。特殊な文字も含んでいません。 なぜでしょうか?

  • Javaが実行されません。

    javacコマンドは正常に動くのですが、 javaコマンドを使用すると Exception in thread "main" java.lang.NoclassDefFoundError:Sample2 と表示されるんですよ。 どのクラスファイルに対してもそうで、 以前実行できたクラスファイルに対しても そのエラーが出るんです。

    • ベストアンサー
    • Java