- 締切済み
CLASSPATHに二つのディレクトリ設定するとエラーが出る?
# 2342062 ではお世話になりました。もう少し質問を明確にします。よろしくお願いします!! CLASSPATHを二つのディレクトリを設定するとエラーが出てしまいます。 理由が分からないので、お願いします! 【状況】 同じディレクトリに 次の2つのファイルがあります。 --- Main.java --- public class Main { public static void main(String[] args) { Sub x = new Sub(); x.test(); } } --- Sub.java --- public class Sub { public void test() { System.out.println("Sub !"); } } 【再現手順】 (1) デフォルトの CLASSPATH は空です。この状態でコンパイルしても問題ありません。 $ echo $CLASSPATH $ javac Main.java $ java Main Sub ! (2) CLASSPATH に . を設定します。この状態でコンパイルしてもやはり問題ありません。 (3) ところが、CLASSPATH にカレントディレクトリ「 . 」ともう一つのディレクトリ(何もファイルがありません)を設定してコンパイルすると、次のようにエラーが出てしまいます。 $ export CLASSPATH=.:tmp $ javac Main.java Main.java:3: シンボルを見つけられません。 シンボル: クラス Sub 場所 : Main の クラス Sub x = new Sub(); ^ ---------------- とりあえず、カレントディレクトリはCLASSPATHに指定してあるので、Sub.classは見つかるはずだと思うのですが、なぜエラーが出るのでしょうか? よろしくお願いします!!
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- syakko
- ベストアンサー率25% (6/24)
たしか、カレント以外はクラスパスってディレクトリ指定できないのではないですか? tmpにあるtest.jarを加えたいなら、 $ export CLASSPATH=.;/tmp/test.jar などと明示する必要があった気がします。 あと、:を;にしてみたらいかがでしょうか?
補足
http://www.javaroad.jp/java_basic2.htm をみると、 > たしか、カレント以外はクラスパスって > ディレクトリ指定できないのではないですか? こういうことはないようなのですが・・ ; はダメでした。