0

私の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をインポートする必要があります
4

4 に答える 4

2

次の行をクラス A コードに追加します。

import b.B;

これは、パッケージ宣言に続くコードの次の行である必要があります。

于 2012-06-13T13:13:28.487 に答える
2

タイプをインポートする必要があります

import b.B;

Javaクラスの実行中

ディレクトリに移動

そして、やります

java a.A

見る

于 2012-06-13T13:13:46.903 に答える
1

以下のコードは機能します。

//B.java

package b;

public class B{

  String s;

  public B(String s){

   this.s = s;

  }

  public void run(){
    System.out.println(s);
  }
}


//A.java

package p;

import b.B;

class A{

  public static void main(String[] args){

B b = new B("haha");

b.run();

  }

}

「java pA」を実行します

于 2012-06-13T13:38:37.463 に答える
0

他のクラスをインポートするかimport b.B

または、両方のファイルを同じフォルダー (p) に配置し、コンパイルされるpackage b;フォーム クラスを削除します。B

于 2012-06-13T13:20:48.860 に答える