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);              
  }                                     
}

我无法使用 编译这两个文件javac a.java b.java,错误是:

a.java:4: 找不到符号
符号:B 类位置:类 pA
B b = new B("haha");
^
a.java:4: 找不到符号
symbol : class B
location: class 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类必须是公开的
  • 尝试在 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 回答