JAVAの初学者です。WIN98、JDKで勉強し始めています。
WINDOWのDOS画面で、JAVAC XXXX.JAVA(Enter)とコンパイルを行うと初回等には大変な数のエラーが出ます。初めの方のエラーは画面がスクロールされてしまって見えません。
皆さんはどうしておられるのでしょうか。紙に打ち出そうとしても、エラーは「標準エラー」に出力されるらしく、パイプやリダイレクト(>PRN や|MORE)が効かないようです。紙に打ち出す方法でもいいです。教えてください。
またエラーのある行番号数の表示が出ますが、コンパイルに差し障らないように、ソースに行番号数を一時的に画面表示だけ振る方法・エディターなどは有るのでしょうか。C言語の勉強でも同じとおもいます。
以前に、他の方が同じ質問をされていて回答がありましたが、その通りしても上手く行きません。初級の解説書もJDKのことは書いても、上記のことを書いた本は(10冊程度しか読んでいませんが)、全くありません。今日も「JAVAの勉強を始めるにはどうすれば良いか」とOK-WEBに質問があり、JDKで勉強しろとアドバイスがありますが、すぐ上記の疑問にぶつかると思います。
No.4ベストアンサー
- 回答日時:
確かにDOSプロンプトのエラー表示には頭を悩ませますね。
。(^^;これは他の方がおっしゃられているようにエラー表示が標準エラー出力に出力されている為です。
で、私は別の切り口から。。無い物は作ってしまいましょう作戦
つうわけで標準エラー出力を標準出力に切り替えてしまうプログラムを作ってしまいましょう。
下は簡単なサンプルです。
import java.io.*;
public class ExecTest {
public static void main(String args[]){
if (args.length == 0 ) {
System.out.println("Usage:java ExecTest command [args1 [args2][...]]");
System.exit(0);
}
String cmd[] = args;
try {
Process prc = Runtime.getRuntime().exec(cmd);
InputStream is = prc.getErrorStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line;
while((line = br.readLine()) != null){
System.out.println(line);
}
prc.destroy();
} catch(Exception e) {
e.printStackTrace();
}
}
}
上のプログラムをExecTest.javaとして保存後コンパイルして
DOSプロンプトより
>java ExecTest javac programfile
とすればOKなはずです。
programfileのところにはエラーのあるファイルを入れてください。
見た目は同じですが標準出力にエラーが出力されてますので|more も効くはずです。
一応JDK1.3の環境で実験済みなんで大丈夫だと思います。
では。。(^^;
No.5
- 回答日時:
に以前に出た同様の質問があります。
>エラーの指摘が7件なのですが、SDK 1.3.1 で javac GDraw.java では25件エラー指摘が出ます。
についてですが、oldjavacは名前からみる限り以前のverのJava Compilerなんではないでしょうか?
Javaは結構な頻度でバージョンアップをしており、クラスライブラリの位置変更/仕様変更をはじめ、少なからず言語仕様の変更などもなされているはずです。その違いから同じソースコードでもバージョンの違うCompilerにかければエラー結果は変わってきます。(一般的に言語仕様が明確、詳細になるため新しいVerのものを使うとエラーやワーニングの量は増えると思われます)
行番号に関しては多くのプログラム向けエディタでサポートされています。
行番号の問題を省いても予約語の強調表示やCompilerの呼び出し、エラー/ワーニングの該当位置へのジャンプなどの機能を持つものもありますのでご自身の手になじむエディタを探してみるのもいいかもしれません。
もしくは統合環境を用意するのもひとつの手です。
現在では無料で使用できる統合環境もあります。上記の機能も統合環境であれば当然のように持っていますし、ものによってはCompilerとして組み込みのものではなくJDK付属のjavacが使えるものもあります。
No.3
- 回答日時:
imogasiさん、こんにちは。
確かにJAVA2 SDK(JDK)のコンパイラのメッセージは不親切ですね。
他の方を示されているように、いろいろな手法があるようですが、OSやJAVA2の問題で、あまり満足のいく方法ではないですかね。個人的には、PCを買えばライセンス込みでバンドルされるOSに、無償で得られるSDKでは、ある程度我慢せざる得ないのかなと思っています。なので多量のエラーが発生したときは、自分で対処するしかないのかのと思っています。
私は、数百行、数千行あるプログラムソースの大部分を/* と */ で囲んでコメントにしておいて、コンパイルエラーにならないところまでに一旦しておき、コメントに少しずつ解除して、エラーの発生箇所を少しずつなくす方法をとっています(いました)。
経験上、多量に出ているコンパイルエラーも、1箇所の記述ミスを直すだけで数個から数十個解消されることが多いです。記述ミスつまりプログラマのケアレスミスですね。
そんな風に悪戦苦闘して経験を積めば、「多量エラーで悩む」前に「エラーの発生を未然に防ぐ」ことができると思います。初心者の方にはきついことかもしれませんし、遠回りのように思えるかもしれませんが、真の解決の早道になると思っています。
また、行番号に関連しますが、私は「秀丸」を利用しています。「秀丸」含め多くのプログラマ愛用エディタがシェアウェア(秀丸は4000円+諸費用)なので躊躇すると思います。なので、こればかりは、「(以下のVectorなど)Webサイトや雑誌付録から、フリー/シェアのエディタを取得して試して見てください」と言うしかないありません。
以上、参考になりましたでしょうか。
参考URL:http://www.vector.co.jp/vpack/filearea/win/writi …
No.2
- 回答日時:
finalanswerさんの紹介された方法は、Java2以降では使えないと思います。
oldjavacを使用する方法を紹介しておきます。
oldjavac -Xstdout sample.java > result.txt
-Xstdoutを指定するとエラー出力が標準出力に変更されます。
なお、Windows2000の場合は、
javac sample.java 2> result.txt
のように 2> でリダイレクトするとエラー出力がリダイレクトされますので、oldjavacを使用しなくてもOKです。
早速ご回答有難うございました。
私の場合>oldjavac -Xstdout GDraw.java > result.txt
で、result.txt が出来ました。しかしエラーの指摘が7
件なのですが、SDK 1.3.1 で javac GDraw.java では
25件エラー指摘が出ます。この違いはどうして出るのか、ご存知でしたら、教えてください。
No.1
- 回答日時:
DOSプロンプトで、Javaのコンパイル時に表示されるメッセージは、以下のようなコマンドで取得できます。
(sample.javaをコンパイルしてresult.txtに出力する場合)
javac -J-Djavac.pipe.output=true sample.java > result.txt
Javaに関するよくある質問とその回答集を参考URLとして挙げておきます。
参考URL:http://www.gimlay.org/~javafaq/javafaq.html
直ちにご回答に接し、やって見ました。誠に有難うございました。但しエラー指摘は、画面に出て、表示は流れて出てしまい、result.txtは空です。さらに何か教えて頂ける
ことがありましたら、よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java jdk17.06のインストーラーが起動しない 1 2023/03/27 21:58
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
- Java Javaについて質問です。 勉強し始めたばかりの初心者です。 相続税について課税額を算出するコードを 1 2022/05/31 19:02
- FX・外国為替取引 MQL5にて謎のエラーが発生!だれか対処を教えてください! 1 2023/03/25 15:59
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
- 仕事術・業務効率化 効率的な勉強方法(分野問わず)を教えてください 1 2023/08/16 01:33
- デスクトップパソコン もう18年も前のパソコンなので 希望はもうないのですができる限りのことを教えてください。 T90J( 22 2022/12/22 12:28
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- その他(プログラミング・Web制作) 次に、楽天のアジャイル就活に参加して、1日で内定を獲得できる。私は大企業に就職できる? 2 2022/04/17 13:38
- JavaScript ソースコードは下の共有コードサイト「張り紙」にあります。 入力フォームの javascript で 1 2022/05/11 11:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Eclipseで、プロジェクト名のと...
-
シンボルが見つかりませんとい...
-
タグが閉じてないというエラー...
-
eclipseでのsvn認証エラー回避方法
-
構文エラーのやり直しについて
-
Javaのエラーについてです
-
JAVAを使ったメール送信が時々...
-
java.lang.StackOverflowErrort...
-
Eclipse デバッグ エラー処理
-
java.lang.StringIndexOutOfBou...
-
tomcat起動時エラー
-
S2daoのSqlファイルでのDBア...
-
Eclipseで次のエラー箇所にジャ...
-
eclipseでのライブラリの追加に...
-
(急募)Java 3回間違えたら強...
-
Javaでclass,interfaceまたはen...
-
演算子*はjava.lang.String.dou...
-
String型とchar型の変換エラーです
-
Oracle8i に接続しようと思うん...
-
eclipseをバージョンアップした...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Eclipseで、プロジェクト名のと...
-
シンボルが見つかりませんとい...
-
エラー:org.springframeworkが...
-
tomcat起動時エラー
-
Javaのエラーについてです
-
タグが閉じてないというエラー...
-
コンパイル時にエラーが出てし...
-
構文エラーのやり直しについて
-
eclipseをバージョンアップした...
-
eclipseでのsvn認証エラー回避方法
-
Eclipseで次のエラー箇所にジャ...
-
JBossについて
-
JSPの表示時エラー
-
「型 ArrayList は総称ではあり...
-
Win32コンソールアプリでnamesp...
-
Eclipseの環境について
-
致命的: StandardServer.await:...
-
javaw.exeプロセスが正常起動し...
-
getParameterについて
-
JSP内でString型からint型に変...
おすすめ情報