私の2つのクラスは次のようなものです:
package p;
class A{
public static void main(String[] args){
B b = new B("haha");
b.run();
//System.out.println("he");
}
}
と
package b;
class B{
String s;
public B(String s){
this.s = s;
}
public void run(){
System.out.println(s);
}
}
を使用してこれら 2 つのファイルをコンパイルできませんでしjavac a.java b.java
た。エラーは次のとおりです。
a.java:4: シンボルが見つかりません
symbol : クラス B 場所: クラス pA
B b = new B("haha");
^
a.java:4: シンボルが見つかりません
symbol : クラス B
場所: クラス pA
B b = new B("haha");
^
2 エラー
を削除した後package p;
、javac a.java b.java
うまく動作します。
では、どうすればクラス A をコンパイルして実行できますpackage p;
か?
======編集=======
お返事ありがとうございます。最後に、ファイルを次のように変更してクラスを実行しました。
.
├── b
│ ├── B.class
│ └── B.java
└── p
├── A.class
└── a.java
および a.java:
package p;
import b.B;
class A{
public static void main(String[] args){
B b = new B("haha");
b.run();
//System.out.println("he");
}
}
B.java:
package b;
public class B{
String s;
public B(String s){
this.s = s;
}
public void run(){
System.out.println(s);
}
}
物事に注意を払う必要があります:
- クラス B は public でなければなりません
- クラスAで使用しようとするときにBをインポートする必要があります