JDK1.3のエラー表示についてなんですが、エラー表示が10個ぐらいでるとエラーが多すぎて1個目からのエラーが上の方にいってしまって見えなくなってしまいますよね。
あれはどんなふうにして見たらいいのでしょうか?
宜しくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (6件)

javac -Xstdout ???.java >error.txt


のようにすればリダイレクトできたと思います。お試しください。

javaのコンパイルは、バッチファイルを作って、pathの通ったディレクトリに置くと便利ですよ。
    • good
    • 0

すいません。


-Xstdoutは最新版では使えないんですよね。
OLDJAVACを使うってのはどうでしょう。。。
    • good
    • 0
この回答へのお礼

うまくいきました。ありがとうございました。

お礼日時:2001/09/18 03:57

mainメソッドの任意の位置(エラー発生箇所より前)に以下の行を加えてみてください。


System.setErr(System.out);

alfeimさんがおしゃられているように標準エラー出力にエラーが出力されているので
Win98やMeのDOS窓だと通常はファイルへのリダイレクトもmoreコマンドも効きません。
上に記載した行は通常標準エラー出力に割り当てられている物を標準出力
に割り当てなおす為の物です。
この行を加える事によってファイルリダイレクトやmoreコマンドが使えるはずですので
試してみてください。System.outの部分を変更すれば直接ファイルへ書き出す事も
可能だと思います。
詳しくは参考URL、SUNのHP(Java Platform, Standard Edition, v 1.3API 仕様)
のSystemクラスsetErrメソッドを参照してみてください。

参考URL:http://java.sun.com/j2se/1.3/ja/docs/ja/api/inde …
    • good
    • 0

どうもerror情報を標準エラー出力に吐いてるようですね・・・


NTであればtomatosukiさんの方法でファイルリダイレクトできるようですが、9x、Meでは効かないようです。

別の解決方法としては

・リダイレクト先を変更できるshellを使う
・Editor内からコマンドを呼び出し、その履歴を見る

等があります。

>・リダイレクト先を変更できるshellを使う
というのはUNIX系shellではこれが可能で標準エラー出力に流れるメッセージを標準出力に流し込んだり出来ます。これでtomatosukiさんのやっていらっしゃる様にファイルにリダイレクトすれば読めるようになります

>・Editor内からコマンドを呼び出し、その履歴を見る
一部のプログラマ向けのエディタではエディタ内からコマンドを呼び出し、その結果をエディタ内に表示する機能を持っているものもあります。
usjさんがお使いのエディタが何かわからないのでアドバイスしようがありませんが、お使いのエディタのマニュアルを調べてみてください。機能があるかもしれません。


NT系ではコマンドプロンプトのバッファ自体を広げ、スクロールバックする方法もあるんですが・・・9xでは駄目かも知れません(現在NTのため未確認)

また、別の方法としてはJava開発向けの統合環境を使うのも手です。BorlandのJbulder personalや Sunの Forte for Java Community editionは無料で使用可能な統合環境として提供されています。これらではコンパイルエラーなども統合環境内で表示されますし、エラー個所へのジャンプ機能も持っているはずです(使用してないので予測。さすがに統合環境を名乗るからにはこれぐらいはついてるでしょ(^^;)。

なお、JBuilderは
http://www.borland.co.jp/jbuilder/jb5/donwnload/ …

Fonrte for Java Community Editionは
http://www.sun.co.jp/forte/ffj/buy.html

から、それぞれダウンロード可能です。
    • good
    • 0

僕もそれには困っていましたよ。


javac sample.java | more とやっても、効果がないんですよねぇ。
僕の場合はしょうがないから
javac sample.java > tekitou.txt
のように、リダイレクト機能を使って、tekitou.txtのテキストファイルを見るようにしていましたよ。
頑張ってくださいね。
    • good
    • 0

DOS窓上での話ですよね?



javac -option file.java

のような感じで書かれていると思いますが、これに

javac -option file.java | more

(| more)を追加を追加して実行してみてください
    • good
    • 0
この回答へのお礼

>DOS窓上での話ですよね?
そうです。
ファイル名がrei008.javaというので
「javac rei008.java | more」
を実行してみたのですが、
「エラー 10個
コマンドまたはファイル名が違います.」
と表示されやはりエラーの上の部分が見れません。
「|」というのは「\」+「Shift」ですよね。
何か私が間違ったやり方をしているのでしょうか?

お礼日時:2001/09/15 03:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Qjdk1.3で実行すると・・・

jdk1.3でコンパイルし実行すると

Exception in thread "main" java.lang.NullPointerException
at java.util.Hashtable.put(Hashtable.java:385)
at java.awt.GridBagLayout.setConstraints(GridBagLayout.java:357)
at rei008.<init>(rei008.java:144)
at rei008.main(rei008.java:20)

というメッセージが出てプログラムが実行できません。
なぜなんでしょうか?宜しくお願いします。

Aベストアンサー

1.「初期化していない」または「値をセットしていない」変数をアクセスしていませんか。
2.戻り値に値が入っていますか。
3.DBやファイルから読み込んだ値は本当にありますか。

NullPointerExceptionの場合はこれをチェックしています。

QExceptionのStackTraceをStringに格納したい(JDK1.3)

Exception発生時のStackTraceをString変数に格納してエラー時のログ出力等の処理に使用したいと思っており、StackTraceをStringに格納する方法で思案しております。JDK1.4であればgetStackTrace()等が使えそうですが、当方はJDK1.3を使用しており、1.4から実装されたgetStackTrace()は使用できないために独自にコーディングする必要があると思っております。

なにかよい方法はないでしょうか。Stringは配列になってももちろんかまいません。サンプルロジックや参考HP等を紹介していただきたいと思っております。

よろしくお願いいたします。

Aベストアンサー

StringWriterをラップするPrintWriterを作って、printStackTrace(PrintWriter s)で出力すれば?

QJDKバージョン1.3.1以上1.4以下のものを探しています。

JAVAの事が良く分かってなくて恐縮ですが、
バージョン1.4(もしくは1.3.1以上1.4以下)のJDKが必要で、探しているのですが、見つけられません。
どなたか入手先を教えてください。

Aベストアンサー

Archive: Java[tm] Technology Products Download
http://java.sun.com/products/archive/

QJDK1.1.7 と JDK1.3.1 の違い。。。

はじめて質問いたします。
現在、JDK1.1.7 で開発したアプレットがあるのですが、
この中で、java.awt.Choice を未選択状態にする為に select(-1); 
としている個所があります。
このアプレットをJavaPlug-in1.3.1 を使用して実行すると、IllegalArgumentException
が発生してしまいます。

そこで、1.1.7 と 1.3.1 のソースコードを比べてみると、確かに、1.3.1 では、
select(-1) は認めていないようです。

--- JDK1.1.7 の java.awt.Choice の実装 --->

public void select(int pos) {
  if (pos >= pItems.size()) {
    throw new IllegalArgumentException("illegal Choice item position: " + pos);
  }
    :
    :
}
<--- JDK1.1.7 ---

--- JDK1.3.1 の java.awt.Choice の実装 --->

public synchronized void select(int pos) {
  if ((pos >= pItems.size()) || (pos < 0)) {     <--- 違いはここだけ。。。
    throw new IllegalArgumentException("illegal Choice item position: " + pos);
  }
    :
    :
}
<--- JDK1.3.1 ---

う~ん、まさしく、-1 を拒否していますね。

何故、このような実装の違いが出ているのでしょうか?
(私的には、Java2開発者の気まぐれなのではと考えてしまいます。。)

また、このアプレットを最小限の修正で1.3.1 でも正常に動作するようにしたいの
ですが、1.3.1 の java.awt.Choice では未選択状態にする事は不可能なのでしょうか?

ご存知の方がおられましたら、是非、お教え頂きたいと思います。
よろしくお願い致します。

はじめて質問いたします。
現在、JDK1.1.7 で開発したアプレットがあるのですが、
この中で、java.awt.Choice を未選択状態にする為に select(-1); 
としている個所があります。
このアプレットをJavaPlug-in1.3.1 を使用して実行すると、IllegalArgumentException
が発生してしまいます。

そこで、1.1.7 と 1.3.1 のソースコードを比べてみると、確かに、1.3.1 では、
select(-1) は認めていないようです。

--- JDK1.1.7 の java.awt.Choice の実装 --->

public void select(int pos) {
  if...続きを読む

Aベストアンサー

バージョン1.1.xのAPI仕様を見ても、select(-1)で未選択状態に出来るとは書いてないんですよね…… だから1.1.7のselect(-1)で未選択状態に出来たのは、たまたまそうなっていたからとしか言いようがありませんね。

API仕様では、バージョン1.1でも1.3でも例外キャストの条件が「指定された位置が無効な場合」となっていて、具体的な数字が出てこないのでかなりあいまいな表現ですが、それでも引数に-1を渡したら普通は例外になると考えるのが自然です。

いずれにせよ、バージョン1.3のAPI仕様を見る限り、未選択状態に関することは載っていないので、あとから未選択状態になるように仕向けるのはあきらめたほうが良いと思われます。ほかに上のような裏技があったとしても、将来の実装が変更されないとは言い切れません。

提案: 未選択状態にする代わりに、空白の選択項目、あるいはウェブページに良くある「選択してください!」といったような“無効な項目”を作ってはどうでしょう。未選択状態にする目的がかかれてないので、なんともいえませんが。

Q0をn個と1をm個使用した文字列の表示法

以下の様なプログラムを作らなければならないのですが、さっぱりわかりません。わかるかた教えてください。


0を3個、1を2個の場合

表示結果
00011
00101
01001
10001
00110
01010
10010
01100
10100
11000

表示結果の順序は気にしませんので、全てのパターンを表示させたいです。
よろしくお願いします。

Aベストアンサー

以下のようなプログラムを考えてみました。(インデントを入れるため各行の先頭に全角スペースが入っていますので、コピーして使用する場合は半角スペースに置換して試してみてください。)

仕組みは樹形図をイメージして頂ければよろしいかと思います。
out という関数を再帰的に呼び出して全ての結果がぶら下がる木を作っています。

0 と 1 の個数を変更する場合は main のなかの c0 c1 を変更してください。

プログラムをスッキリさせるために再帰を使いましたがfor文などに置き換えることも可能だと思います。

*プログラム
public class Patterns {
 public static void out(int c0, int c1, String pattern){
  if(c0 != 0 || c1 != 0){
   if(c0 > 0)
    out(c0 - 1, c1, pattern + "0");
   if(c1 > 0)
    out(c0, c1 - 1, pattern + "1");
  }
  else{
   System.out.println(pattern);
  }
 }

 public static void main(String[] args) {
  int c0 = 3;
  int c1 = 2;
  out(c0, c1, "");
 }
}

*結果
00011
00101
00110
01001
01010
01100
10001
10010
10100
11000

以下のようなプログラムを考えてみました。(インデントを入れるため各行の先頭に全角スペースが入っていますので、コピーして使用する場合は半角スペースに置換して試してみてください。)

仕組みは樹形図をイメージして頂ければよろしいかと思います。
out という関数を再帰的に呼び出して全ての結果がぶら下がる木を作っています。

0 と 1 の個数を変更する場合は main のなかの c0 c1 を変更してください。

プログラムをスッキリさせるために再帰を使いましたがfor文などに置き換えることも可能だと思...続きを読む


人気Q&Aランキング

おすすめ情報