2012-01-10 19 views
0

この質問が繰り返されないことを願っています。しかし、ちょうどどこでも答えを見つけることができません:Java:クラス解決済みですか?

私は1つのフォルダに2つのファイルが含まれています。今A.javaに、私は

public class A extends Applet{ 
... 
    B aB; 
} 

コンパイラを宣言しようとしています

は私を与える:

B cannot be resolved to a type 

私はファイルが同じフォルダ内にある場合と言う記事をたくさん読んで、私はインポートする必要はありません。誰も私がこの問題を "解決"するのを助けてくれますか? ありがとう、ありがとう!

----------- SOLVED! - 下の回答を参照してください------------------

+0

のほとんどの世話をするようeclipseはあなたがクラス「A」を持ってここに大いに役立つはずです、私は思いますクラスb.class(b.java内)のクラス名は 'B'でしたが、それは小さい 'b'ですか?チェックしてください!!問題が解決しない場合は、クラスBの転記コードを試してください。 – aProgrammer

+0

変更...はい、一貫しています。私は2つの例としてAとBを使用しています - 元のコードは少し複雑です...しかし、おそらく私はそれらをすぐに投稿する必要があります。 – user1140120

+0

クラス宣言に名前とパッケージを含む完全なフォルダ構造を表示できますか? –

答えて

0

あなたが投稿したシンプルなケースが私のために働きます。私は、次のことを確認したい:

  • あなたはB.classA.javaと同じフォルダに存在していることを確認していますか?
  • javacをそのフォルダから実行していますか?
  • プログラムのどこでもクラス名Bを正しくタイプしましたか?これには、Java識別子が大文字と小文字を区別するため、大文字が含まれます。
  • プログラムにpackage宣言がありますか?もしあれば、あなたはフォルダにすべてを投げ込むだけで、暗黙的にデフォルトのパッケージを使用しているので、これはうまくいくことはありません。
-1

コンパイラは、クラスパスで* .classファイルを探します。同じソースディレクトリ内の* .javaファイルのみを検索します。ディレクトリを含むようにクラスパスを設定する必要があります。

または、これをすべて設定して処理に多くの時間を節約するIDEを使用することもできます。

+0

デフォルトのパッケージを使用している場合、コンパイラはカレントディレクトリに '.class'ファイルを見つけます。 – Taymon

1

.classファイルは、classpath変数で参照されるディレクトリに存在する必要があります。通常は、.javaファイルを1つのディレクトリ(src)に格納し、別のディレクトリ(bin)にコンパイルし、外部の.classファイルを3番目のディレクトリ(lib)に格納します。コマンドは次のようになります。

# compile 
javac -sourcepath src -classpath lib -d bin 
# run 
java -classpath bin:lib A 

IDEを使用するようなことは、ファイルa.javaで詳細

+0

ありがとう!それは動作し、私は "javac -classpath dirForAandB A.java"を大いに感謝しました! – user1140120

関連する問題