- ベストアンサー
基本情報技術者試験のJava問題が動かない!
基本情報技術者の学習をしている者です。 平成19年度秋期 基本情報技術者試験の Java問題(問8:待ち行列の問題)を 実際にコーディング後の、コンパイルが出来ません。 (入力済みコードは、問題文と照合して間違いないです) エラーメッセージは、 クラス WeightedQueue は public であり ファイル WeightedQueue.java で宣言しなければなりません。 クラス WeightedQueueTester は public であり ファイル WeightedQueueTester.java で宣言しなければなりません。 です。 実プログラムでトレースしてみたいのですが、 ・本試験問題が、何故コンパイルエラーになるのか? ・果たして、このコードは正しいのか? 疑問だらけです。 又、平成20年度春期の同試験 Java問題(問8:電気ポットの問題)でも、 クラス ・・・は public であり ファイル ・・・・.java で宣言しなければなりません。 クラス ・・・は public であり ファイル ・・・・.java で宣言しなければなりません。 と、同様のコンパイルエラーが出ます。 詳しい方教えて下さい。 宜しくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ソースコードを保存したファイルのファイル名が間違えているのだと思います。 * WeightedQueue クラスのソースファイルのファイル名は「WeightedQueue.java」に * WeightedQueueTester クラスのソースファイル名は「WeightedQueueTester.java」に する必要がありますが、そうなっていないのではないでしょうか。
その他の回答 (2)
- kenichiice
- ベストアンサー率72% (27/37)
No.2の回答にある通りですが、WeightedQueue には main メソッドがないのでこのクラスを単独で実行することはできません。 WeightedQueueTester が内部で WeightedQueue を使っているので、WeightedQueueTester を実行したときに WeightedQueue も動いています。
お礼
ありがとうございました。
- hk_java2
- ベストアンサー率44% (8/18)
> Exception in thread "main" java.lang.NoSuchMethodError:main main()メソッドがないということなので WeightedQueue.java は単独で動作するプログラムではないのでしょう。 元のソースを見ていないのでクラス名からの推測ですが、WeightedQueueはWeightedQueueTesterを動かしたときに呼ばれるクラスが記述されていると思われます。
お礼
ありがとうございました。
お礼
ありがとうございました。
補足
ご回答をありがとうございました。 ファイル名を WeightedQueue.java と WeightedQueueTester.java で、保存したらコンパイルできました。 WeightedQueueTester.javaの方は、問題冊子の答えを確認出来ました。 ただ、新たな問題が出ました。 WeightedQueue.javaを java WeightedQueueで走らしたところ、 Exception in thread "main" java.lang.NoSuchMethodError:main とメッセージが出ました。 IPAの試験問題が欠陥?なのでしょうか? WeightedQueue.javaも動かしたいので もし対処方法をご存知でしたら、 差し支えなければ、再度ご教示いただけませんでしょうか? 宜しくお願いします。