重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

10日で覚えるjava第三版 84-85Pのソースをコンパイルして実行すると

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at lesson09.Lesson09.main(Lesson09.java:6)

と出てきてしまいます。

6行目に問題があるようですが、私は初心者のために下記で調べてみても
http://www.javaroad.jp/faq/faq_error2.htm#q5
配列の何が問題なのか良く分かりません。
どこをどう直したら動くのでしょうか?

また、この本は書いてないことが多いような気がします。
他の本で勉強した方が良いでしょうか?

以下、問題のあったソースコードです

public class Lesson09 {
public static void main(String[] args) {
int x,y;

//実行引数の受け取りをint型に変換する
x = Integer.parseInt(args[0]);
y = Integer.parseInt(args[1]);

//Pointオブジェクトの生成する
java.awt.Point point = new java.awt.Point();
//座標を設定する
point.setLocation(x,y);

System.out.println("X, Y座標をフィールドで参照します (int) ");

//フィールドで座標を取得する
System.out.println("X 座標 : " + point.x);
System.out.println("Y 座標 : " + point.y);

System.out.println("X, Y座標をgetメソッドで参照します(double)");

//getメソッドで座標を取得する
System.out.println("X 座標 : " + point.getX());
System.out.println("Y 座標 : " + point.getY());
}
}

A 回答 (2件)

例えば、


java Lesson09 10 10
など、整数値2個を引数にして、コマンドラインで
実行することを意図したコードです。
引数を指定しないで実行した場合、args の length
が 0 となるため、ArrayIndexOutOfBoundsException
が発生します。
    • good
    • 0

プログラムのソース自体には問題ありません。


プログラムの実行方法に問題があります。
多分このソースの書いてあるページの前後にプログラムの起動時の注意が書いてあると思います。

……まあ、こういった実行時のミスにどう対処するかが実際のプログラミングの大半なのですが、学習用にそういったコードを外して説明したいポイントをわかりやすくしようとしているんでしょう。
    • good
    • 0

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