我在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?
答案 0 :(得分:5)
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>
答案 1 :(得分:1)
那是因为Java不知道在哪里可以找到其他文件的来源。您需要cd
进入src
目录,或指定src
上的-sourcepath
目录。
答案 2 :(得分:0)
尝试javac -d classes src / com / example / * .java