- 締切済み
パッケージについて
いつもお世話になってます。今回は異なるパッケージについてお聞きしたいのですが、違うパッケージのクラスを利用するのには、クラスの先頭にpublicをつけ、利用するときはパッケージ名・クラス名とするか、importを使うかしますよね。そこで、違うファイルは違うフォルダに保存してても実行できるのですか?あと、いくらコンパイルしようとしても、シンボル処理できませんと、利用しようとするクラス、パッケージが出てきます。やはり、同じディレクトリ内でないといけないのか、教えてください。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- a-kuma
- ベストアンサー率50% (1122/2211)
> CLASSPATHに追加しろとはどういうことでしょうか? クラスを探しに行くところを教えてあげないといけません。 やりかたは二通り。環境変数で設定するか java を動かすときの オプションで指定するか。 環境変数の設定方法は、OSに依存するのですが FAQ のサイトが 参考になるでしょうか(→参考URL)。 > またまたa-kumaさん、お世話になります(^^)。 実は、私 Java は初心者です。今度、業務で使うはめになり、 勉強がてら回答しています。正確な情報を発信するようには 努めてますが、間違いがあったときには ご容赦 を m(_ _)m
- snnk
- ベストアンサー率60% (3/5)
違うpackage名の物を同一のディレクトリ下で使用しているのでは? もしくは対象パッケージ位置が存在しないか、classpathが指定されていないかでしょう。 例えば、 package hoge1 class Hogehoge1 package hoge2 class Hogehoge2 class Hogehoge という3つのクラスがあるとします。 クラスHogehogeには、パッケージ宣言がされていません。 で、/上にこのファイルを置いているとします。 この場合、Hogehoge1.classは、/hoge1下にHogehoge2.classは、/hoge2下に置いておく必要があります。 /Hogehoge.class /hoge1/Hogehoge1.class /hoge2/Hogehoge2.class という事です。 (この場合、/にはpathが通っていないとダメですけど。)
補足
細かい回答ありがとうございます。先ほど、a-kumaさんの補足にも書かせていただきましたが、PATHが通ってないといけないとはどういうことでしょうか?あと、hogehogeのディレクトリの中にhoge1が、さらにその下にhoge2があると言う事で良かったですか? 良ければ、a-kumaさんの補足のほうも見ていただいて回答頂けるとうれしいです。よろしくお願いします。
- a-kuma
- ベストアンサー率50% (1122/2211)
Java は良く知らないのですが、その違うファイルが配置されているところを CLASSPATH に追加しろ、ということなのではないですか?
補足
またまたa-kumaさん、お世話になります(^^)。 そしてまたしても初歩的質問でCLASSPATHに追加しろとはどういうことでしょうか?snnkさんにも同じようなことを言われていますが、よく分かりません。またしても、コードを記入しておきます。(今回はタイプミスではないと思うのですが・・) お願いします。 package pg; (pgとパッケージにする) //車のクラス public class Car { private int num; private double gas; public Car() { num = 0; gas = 0.0; System.out.println("車を作成しました"); ~(略)~ ここから違うファイルにします。 package pb; (pbのパッケージにする) import pg.Car; (ここでpgをインポートする) class sample6 { public static void main(String args[]) { Car car1 = new Car(); car1.show(); } といった具合です。よろしくお願いします。
お礼
返事が遅くなってすみません。 まだイマイチわかってないですが、 とりあえず、参考URLは非常に役立ちそうなので、 もう少し勉強してみます。ありがとうございました。