- - PR -
初歩的な質問です。
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2005-04-30 08:18
TestBクラスが見つからない、って言ってます。 TestB.classはフォルダのどこに出来てますか? | ||||
|
投稿日時: 2005-04-30 11:40
コマンドを実行する場所が間違っています。
C:\work\java\com\aaa\bbb>javac TestA.java ではなく、 C:\work\java\javac -classpath . com\aaa\bbb\TestA.java としてみてください。 ちなみにTestAのコンパイル時に自動的にTestBも コンパイルされるため、TestBを先にコンパイルしておく必要はありません。 | ||||
|
投稿日時: 2005-04-30 12:10
エラーを出している人の気持ちになってみましょう。 エラーを出しているのは誰?コンパイラ(javac)ですよね。 javacからみると、Testbなるもののソースか、クラスファイルがないとTestAはコンパイルできないので、TestB.javaか、TestB.classの場所を教えてあげないと、「どこやねん」ということになってしまうわけです。 で、「同じcom.aaa.bbbパッケージのソースファイルは同じディレクトリになければならない」なんていう決まりはどこにもない(実際、TestB.javaをcomにおこうと、com/aaaに置こうと問題なくコンパイルできます)ので、TestA.javaと同じディレクトリにTestB.javaを置いてもjavacは分かってくれません。 だから方法としては 1.TestB.javaの場所を教える 1−1.sourcepathを通す 1−2.TestB.javaも(*などで)同時にコンパイルする 2.TestB.classの場所を教える 事前にTestBをコンパイルしておく必要あり。 TestBもTestAを逆に使っている場合は不可能 となります。 たぶん。 javacなんてもう2年もたたいてないから自信なし・・・。 [ メッセージ編集済み 編集者: ibara 編集日時 2005-04-30 12:15 ] [ メッセージ編集済み 編集者: ibara 編集日時 2005-04-30 12:18 ] [ メッセージ編集済み 編集者: ibara 編集日時 2005-04-30 12:19 ] | ||||
|
投稿日時: 2005-04-30 12:55
unibon です。こんにちわ。
一番簡単な解決方法は、 C:\work\java>javac com\aaa\bbb\TestA.java のような感じで C:\work\java をカレントフォルダにしてから javac を実行し、ソースファイルをそこからの相対パスで指定することです。なおクラスファイルはソースファイルと同じ場所に生成されますので多少ごちゃごちゃしますが、これが一番簡単で無難な構成です。 ちなみに javac の仕様は、オプションの -sourcepath, -classpath(あるいは CLASSPATH 環境変数), -d あたりが相互に絡み合い、これらをどう指定するかのバリエーションが多く、これらを細かく指定するのはかなり複雑です。 http://java.sun.com/j2se/1.4/ja/docs/ja/tooldocs/solaris/javac.html | ||||
|
投稿日時: 2005-04-30 14:53
| ||||
|
投稿日時: 2005-05-01 16:21
みなさんありがとうございました。
勉強になりました! | ||||
