• ベストアンサー

シンボルを解決できません(初心者)

一つのプログラムに対して、いくつかのファイルに分けて 記述されているとき、 たとえば、ファイル A.java と B.java があって 【A.java】 package shop;  ・  ・  public class Shop {   ・   ・   ・ } 【B.java】 packeage shop;  ・  ・ public class Buy(Shop shop){ } という感じで、A.java内で定義したクラス型を他のファイルで使うと、 コンパイル時に、「シンボルを解決できません」というコンパイルエラーが出て コンパイルできません。 こういう場合はどうすれば、良いのでしょうか? 初心者なので、非常に初歩的な質問かと思いますがよろしくお願いします。

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

  • ベストアンサー
  • kou2000
  • ベストアンサー率29% (14/48)
回答No.2

>今後、いろいろなWEBアプリを作る際に、そのたびCLASSPATHを >追加していくのでしょうか? 追加していく必要はあります。 今作成されているWEBアプリとは別にアプリを作成しようとした場合 、あらたに「CLASSPATH」を追加してあげないとコンパイルできません。 javac自体がどこにファイルがあるのかわからないので指定してあげないとだめですね。

その他の回答 (2)

  • yuji
  • ベストアンサー率37% (64/169)
回答No.3

まずは、publicなクラス名とソースファイル名は一致させましょう。 shop.Shopなら shop/Shop.java shop.Buyなら shop/Buy.java です。

参考URL:
http://www.tcct.zaq.ne.jp/ayato/programming/java/codeconv_jp/
  • jakarta
  • ベストアンサー率38% (607/1597)
回答No.1

【B.java】 packeage shop; 綴りがpackeageになっています。正しくはpackageですね。 エラーが出るときにはエラー発見箇所が何行目か?という表示も 合わせて出るはずですので参照されると編集が早くなります。

ieyasu
質問者

お礼

ご返答ありがとうございます。 それに関しましては、ここへ書き込む際の純粋な記述ミスです。 また、B.java内でも、 public class XXX{ public void YYY(Aで定義したクラス そのクラス型変数){ ・・・・  } } と一般的な使い方です。 ソースの内容には全く記述ミスはありません。 (配布サンプルです。完全に完成されたソースですので) とにかく、エラーは、ファイルAで定義されたクラス(クラス型)を ファイルBで使う(?)箇所ごとに 「シンボルを解決できません」と出ます。 あれから、いろいろしてみて、 「CLASSPATH」にこのファイル群が入っているフォルダの親フォルダのパスを 追加してみると、エラーなくコンパイルできました。 しかし、今後、いろいろなWEBアプリを作る際に、そのたびCLASSPATHを 追加していくのでしょうか? ほかに良い対処法がございましたらお教えください。

関連するQ&A