- - PR -
初歩的な質問です。
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-04-29 23:24
Java始めたばかりです。
2つのクラスがあります。 Class TestA{ ・・・ TestA(){ TestB tb = new TestB(); } ・・・ } Class TestB{ TestB(){ } } みたいなクラスがあります。 無名のパッケージならコンパイルは通るのですが、 package com.aaa.bbb; として、 c:\work\java\com\aaa\bbbの下に TestA.java TestB.javaを置いてコンパイル しようとしたのですが、うまくコンパイルできません。 どのようにすればいいのでしょうか? 初歩的質問で申し訳ありません。 | ||||
|
投稿日時: 2005-04-29 23:47
これは参考にならないでしょうか?がんばってくださいね。 http://www.atmarkit.co.jp/fjava/rensai2/javaent10/javaent10.html | ||||
|
投稿日時: 2005-04-30 00:12
C:\work\java\com\aaa\bbbの下に
TestA.java,TestB.javaを置きました。 それぞれの中身は 【TestA.java】 package com.aaa.bbb; import com.aaa.bbb.TestB; public class TestA{ public static void main(String[] args){ TestB tb = new TestB(); } TestA(){ } } 【TestB.java】 package com.aaa.bbb; public class TestB{ TestB(){ } } です。 C:\work\java\com\aaa\bbb上で、 javac TestA.java とコンパイルしましたが、 TestBが見つからない旨のエラーが返ってきます。 どこが間違えなのかご指摘ください。 お願いします。 | ||||
|
投稿日時: 2005-04-30 00:33
C:\work\java\com\aaa\bbbに配置して、無名パッケージならOKとの事なので、
恐らくC:\work\java\com\aaa\bbbにクラスパスが設定されていますね。 クラスパスをC:\work\javaにして下さい。 それを起点として、パッケージcom.aaa.bbbに対応して \com\aaa\bbb\にあるクラスを参照するようになります。 | ||||
|
投稿日時: 2005-04-30 00:41
念のため確認しますが、TestB.javaは先にコンパイルしていますよね? TestAクラスでTestBクラスを呼んでいるので、 当然TestBが先にコンパイルされている必要があります。 | ||||
|
投稿日時: 2005-04-30 01:21
TestBは先にコンパイルしてます。
でもコンパイルエラーが起きます。 | ||||
|
投稿日時: 2005-04-30 07:52
そうですか。
でも、コンパイルエラーといっても、どのようなエラー内容(エラーメッセージ)なのかを教えてくれなければ、だれも分かりませんよ。 | ||||
|
投稿日時: 2005-04-30 08:00
失礼しました。こんな感じです↓
ちなみにクラスパスの設定は何もしてません。 C:\\work\\java\\com\\aaa\\bbb>javac TestA.java TestA.java:2: シンボルを見つけられません。 シンボル: クラス TestB 場所 : com.aaa.bbb の パッケージ import com.aaa.bbb.TestB; ^ TestA.java:5: シンボルを見つけられません。 シンボル: クラス TestB 場所 : com.aaa.bbb.TestA の クラス TestB tb = new TestB(); ^ TestA.java:5: シンボルを見つけられません。 シンボル: クラス TestB 場所 : com.aaa.bbb.TestA の クラス TestB tb = new TestB(); ^ エラー 3 個 |