• ベストアンサー

CLASSPATHを設定→エラー!!??

Main.java Sub.java を作りました。 デフォルトの状態(CLASSPATHに何も設定していない状態)で javac Main.java とすると問題なくコンパイルできるのですが・・・しかし、   export CLASSPATH=.:~/myclasses などのように、CLASSPATH を設定すると、「シンボルを解釈処理出来ません」というコンパイルエラーが出ます。 なぜでしょうか? CLASSPATH に カレントディレクトリを設定したにもかかわらず、Main.java Sub.javaがあるディレクトリでコンパイルしてもエラーが出ます。 ちなみに、   export CLASSPATH= のように、CLASSPATHを空にすると、またコンパイルが通るようになります。

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

  • ベストアンサー
  • UKY
  • ベストアンサー率50% (604/1207)
回答No.3

「カレントディレクトリだけにしてもNG」となると、パッケージがらみかも。 Main や Sub クラスには、パッケージを指定していますか? (Main.java や Sub.java の最初に、「package foo.bar;」のようなパッケージ宣言を書いていますか?)

white-tiger
質問者

補足

ありがとうございます。助かります! ご指摘いただいて、いろいろ試しているうちに、もっと問題点をわかりやすくできたので、とりあえずこの質問を閉じて、すぐに新しく質問を立て直します。 ありがとうございました!

その他の回答 (2)

  • UKY
  • ベストアンサー率50% (604/1207)
回答No.2

クラス同士の関係が不明瞭なのではっきりとは分かりませんが、たぶん、~/myclasses の中にあるソースファイル「も」コンパイルしようとしているからでしょう。 「シンボルを解釈処理出来ません」というコンパイルエラーはどのソースファイルに対して発生していますか?

white-tiger
質問者

補足

ありがとうございます! >たぶん、~/myclasses の中にあるソースファイル「も」コンパイル よく分からないのは、 export CLASSPATH=. のように、カレントディレクトリだけにしてもNGなのです。 Main.java の中で、Sub.java のクラスのインスタンスを使っています。コンパイルエラーは、Main をコンパイルしているときで、Subのシンボルを解釈できない、と怒られます。 よろしくお願いいたします。

回答No.1

export CLASSPATH=$CLASSPATH:.:.~/myclasses にしてみたらどうですか。 $CLASSPATHがないと もともとある.classにアクセスできないと思います。

white-tiger
質問者

補足

はじめの状態でも、  echo $CLASSPATH とすると空っぽだったのです。 自分で、   export CLASSPATH= のようにCLASSPATHを空にすると、コンパイルが通ります。何かがおかしいのでしょうか。 java のバージョンは 5.0 です。

関連するQ&A