如何在同一个包中访问Java类

我在src / com / example中有两个java文件(A.java + B.java)

A.java

package com.example; public class A { public void sayHello(){ System.out.println("Hello"); } } 

B.java

 package com.example; public class B{ public static void main(String... args) { A a = new A(); a.sayHello(); } } 

如果我cd到src上面的一个级别并输入javac -d classes src / com / example / B.java

我收到错误,说找不到符号A?

javac不知道在哪里找到源类,你必须用-sourcepath选项指定它。

看到:

 C:\example>mkdir src C:\example>type > src/ C:\example>mkdir src\com\example C:\example>more > src\com\example\A.java package com.example; public class A { } ^C C:\example>more > src\com\example\B.java package com.example; public class B { A a; } ^C C:\example>javac -d C:\example>mkdir classes C:\example>javac -d classes src\com\example\B.java src\com\example\B.java:3: cannot find symbol symbol : class A location: class com.example.B A a; ^ 1 error C:\example>javac -d classes -sourcepath src src\com\example\B.java C:\example> 

那是因为Java不知道在哪里可以找到其他文件的来源。 您需要cd进入src目录,或者指定-sourcepath上的src目录。

尝试javac -d classes src / com / example / * .java