如何在同一个包中访问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