- 締切済み
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は見つかるはずだと思うのですが、なぜエラーが出るのでしょうか? よろしくお願いします!!
- white-tiger
- お礼率43% (1031/2391)
- Java
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- syakko
- ベストアンサー率25% (6/24)
たしか、カレント以外はクラスパスってディレクトリ指定できないのではないですか? tmpにあるtest.jarを加えたいなら、 $ export CLASSPATH=.;/tmp/test.jar などと明示する必要があった気がします。 あと、:を;にしてみたらいかがでしょうか?
関連するQ&A
- CLASSPATHに二つのディレクトリ設定するとエラーが出る?
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は見つかるはずだと思うのですが、なぜエラーが出るのでしょうか? よろしくお願いします!!
- 締切済み
- Java
- CLASSPATHを設定→エラー!!??
Main.java Sub.java を作りました。 デフォルトの状態(CLASSPATHに何も設定していない状態)で javac Main.java とすると問題なくコンパイルできるのですが・・・しかし、 export CLASSPATH=.:~/myclasses などのように、CLASSPATH を設定すると、「シンボルを解釈処理出来ません」というコンパイルエラーが出ます。 なぜでしょうか? CLASSPATH に カレントディレクトリを設定したにもかかわらず、Main.java Sub.javaがあるディレクトリでコンパイルしてもエラーが出ます。 ちなみに、 export CLASSPATH= のように、CLASSPATHを空にすると、またコンパイルが通るようになります。
- ベストアンサー
- Java
- PATH、CLASSPATHについて
すいません。いまさらながら、ちょっと教えてください。 WindowsNTを使用しています。 jdk1.3とTomcatをインストールしました。 そして、PATHにコンパイラの場所を指定しました。 C:\jdk1.3\bin そして、次にCLASSPATHをカレントディレクトリと tomcatのlibに通しました。 .;C:\tomcat\lib そして、JAVA_HOMEにjdk1.3を指定しました。 C:\jdk1.3 これで、試しのServlet(Servlet1.java)を javac Servlet1.java として、コンパイルしたのですが、下記のようにエラーがでます。(他マシンのJBuilderでコンパイル確認済み) これは、PATHの指定が間違っているのでしょうか? ■■■■■■■■■■Error内容■■■■■■■■■■■■ Servlet1.java:1: パッケージ javax.servlet は存在しません。 import javax.servlet.*; ^ Servlet1.java:2: パッケージ javax.servlet.http は存在しません。 import javax.servlet.http.*; ^ Servlet1.java:6: シンボルを解釈処理できません。 シンボル: クラス HttpServlet 位置 : Servlet1 の クラス public class Servlet1 extends HttpServlet { ^ Servlet1.java:9: シンボルを解釈処理できません。 シンボル: クラス ServletConfig 位置 : Servlet1 の クラス public void init(ServletConfig config) throws ServletException { ^
- ベストアンサー
- Java
- パッケージのエラーについて
パッケージのエラーについてなのですが、コンパイルできずにいます。 C:\java\13\r内に Car.java rensyu1.javaをおいています。 コマンドプロンプトには C:\java\13> と表示させています。classpathの設定はしていません。 システム内の環境設定はしました。 ------------------------Car.java package r; class Car { private int num; private double gas; public Car() { num = 0; gram = 0.0; System.out.println("車を作成しました。"); } public void setCar(int n, double g) { num = n; gram = g; System.out.println("ナンバー:" + number + "ガソリン:" + gas + "です。"); } public void show() { System.out.println("車のナンバーは" + number + "です。"); System.out.println("ガソリン量は" + gram + "です"); } } -------------------------------------rensyu1.java package r; class rensyu1 { public static void main(String args[]) { Car car1 = new Car(); car1.show(); } } やさしいjavaという本を参考にしていまして 教科書どうりですと javac r\rensyu1.java java r.rensyu1でコンパイルできるはずでしたが 「シンボルを見つけられません」というエラーが出ます。 気になるのが、ファイルr内にCar.classがありません。 他にもjavac -classpath . rensyu1.java を入力してみましたが、こちらは 「無効なフラグです」というエラーがでます。 教えていただけると助かります。宜しくお願いします。
- ベストアンサー
- Java
- java import文のエラー
javaのソースで、パッケージをimportして使用するための簡単なサンプルを作成しました。 import文でクラス名まで指定すれば問題ないのですが、*を利用するとコンパイルエラーとなってしまいます。 コンパイル時にクラスパスを指定するのかと思って試してみましたが、やはりエラーでした。 回避方法をご存知の方いらっしゃいましたら、教えていただけますでしょうか。 なお、java/javacは、1.5.0_14を使用しています。 ■ソースコード(1) <C:\Work\Test\PackTest.java> package Test; public class PackTest{ public static void methodA(){ System.out.println("パッケージ成功"); } } ■ソースコード(2) <C:\Work\UsePack.java> import Test.*; //import Test.PackTest; なら成功 class UsePack{ public static void main(String args[]){ PackTest.methodA(); } } ■エラー例(1) >javac -d . PackTest.java (これは成功) >javac UsePack.java UsePack.java:5: PackTest にアクセスできません。 クラスファイル .\PackTest.java は不正です。 ファイルにクラス PackTest が含まれていません。 削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。 PackTest.methodA(); ■エラー例(2) >javac -d . PackTest.java (これは成功) >javac -classpath C:\Work\Test UsePack.java UsePack.java:1: パッケージ Test は存在しません。 import Test.*; ^ UsePack.java:5: PackTest にアクセスできません。 クラスファイル C:\Work\Test\PackTest.class は不正です。 クラスファイル Test.PackTest に不正なクラスがあります。 削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。 PackTest.methodA(); ^
- 締切済み
- Java
- 同一パッケージ内の継承について
同一パッケージ内で継承したクラス Test2.java をコンパイルすると「シンボルを見つけられません シンボル:クラス Test1」とエラーになります。 --------Test1.java------- package test; public class Test1{ メソッド } ------------------------- --------Test2.java------- package test; public class Test2 extends Test1{ メソッド } ------------------------- Test1.java,Test2.javaとも同一フォルダ(D:\java\test)にあります。 ちなみにカレントディレクトリをD:\java\testにして javac Test2.java でコンパイルしようとしています。 同一パッケージ内のクラスを継承するというのはおかしなことなんでしょうか?また、コンパイルの仕方もあわせてご教示願えれば助かります。 よろしくお願いします。
- ベストアンサー
- Java
- Java2Dの実行エラー(2)
作成したJavaのソースをjavacでコンパイルを通し、 そのあとにjavaコマンドで実行を通したところ、 以下のようなエラーメッセージが出力され実行できませんでした。 (作成したクラスファイルは「EdgeDetection.class」です。) ------------------------------------------------- C:\TEMP>java -cp . EdgeDetection Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException at EdgeDetection.main(EdgeDetection.java:31) ------------------------------------------------- このエラーを解消するためにもクラスパスの設定(-classpathオプション)もしましたが、駄目でした。 この現象を解決するには、どのようにしたらよろしいのでしょうか?
- ベストアンサー
- Java
- JavaのCLASSPATHの設定について
Java初心者です。過去に類似の質問が多数あり、目を通しましたが、よくわかりませんでした。よろしくお願いします。 コンパイル後、java Sample1と入力して実行しようとすると、 Exception in thread "main" java.lang.NoClassDefFoundError:Sample1 というエラーが出ます。Windows2000を使用。 ユーザー環境変数、システム環境変数の欄共にPathという変数はありますが、CLASSPATHはありません。 CLASSPATHは新規に追加するのでしょうか。それともPathの中に設定するのでしょうか。具体的にどのように設定するのでしょうか。 現在は、毎回Dos画面にset CLASSPATH=.;%CLASSPATH%と入力して実行していますが、PCを起動するたびに行わなくてはならないので、そうしなくてよい方法を教えてください。
- ベストアンサー
- Java
- 「CLASSPATH」には、とりあえず何を指定しておけば便利ですか
Javaプログラミングの勉強を始めようと思っています。 XP Home Edition が稼働するPCに、J2SE 5.0をインストールしたのですが、 「CLASSPATH」の設定に悩んでいます。 入門書やネットで調べてみると、「CLASSPATH」の設定については様々で、 カレントディレクトリと「tools.jar」、 カレントディレクトリと「tools.jar」と「dt.jar」、 カレントディレクトリと作業ディレクトリ、 など、色々なパターンがあるのが混乱の原因です。 1. 「JAVA_HOME」を作成して、「C:\Program Files\Java\jdk1.5.0_06」を指定 2. 「PATH」に、「;%JAVA_HOME%\bin」を追記 3. 「C:\Java」を、作業用のディレクトリとする このような状況であれば、「CLASSPATH」には、 「;.;%JAVA_HOME%;C:\Java」を追記しておけば良いかなと思ったのですが、 何かトラブルが考えられますでしょうか。 とりあえず初学者は、どんな設定にしておけば使い勝手が良く、 学習時のトラブルが少なくて済むか、アドバイスをお願いします。 なお、最初はコマンドプロンプト上で作業をする予定ですが、 ゆくゆくはEclipseを使う予定です。
- ベストアンサー
- Java
- import について
最近JAVAの勉強を始めたばかりの超初心者です。 専門用語(クラス、オブジェクト、メソッド等)に四苦八苦していますが、何とか頑張っています。 で、質問の件なのですが以下をコンパイル出来ません。 //printer.java public class printer { public void print() { System.out.println("hello from java"); } } //app.java import printer; public class app { public static void main (String[] args) { (new printer()).print(); } } printer.java → printer.class のコンパイルは出来ますが app.java をコンパイルしようとすると、以下のエラーが出ます ~$ javac app.java app.java:1: '.' がありません。 import printer; ^ app.java:1: ';' がありません。 import printer; ^ エラー 2 個 printer.javaとapp.javaとprinter.classはすべてカレントディレクトリに入っています。 ただ、app.javaのファイルでimportの行を削除するとキチンとコンパイル実行できてしまいます。 これがなぜか分からない(自分はimportあたりが怪しいと思う)のでタイトルを「importについて」としました。 どなたか原因分かる方いらっしゃいましたら、ご教示よろしくお願いします。
- ベストアンサー
- Java
補足
http://www.javaroad.jp/java_basic2.htm をみると、 > たしか、カレント以外はクラスパスって > ディレクトリ指定できないのではないですか? こういうことはないようなのですが・・ ; はダメでした。