java - 如何访问同一个包中的Java类

标签 java package

我在 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 - 如何访问同一个包中的Java类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5970929/

相关文章:

java - socket虽然连接不上,但不抛异常

java - Android onClickListener 实现最佳实践

java - 我无法在主 Activity 之外设置ContentView()?请阅读

meteor - 使用陨石包的特定分支

python - 某处是否有不兼容 64 位的 Python 包列表?

r - 如何在包内的函数中提供非 R 文件?

r - 在构建 R 包时从另一个 Rcpp 函数调用 Rcpp 函数

java - 方法重载和重写中的编译时和运行时绑定(bind)

java - Eclipse 无法识别 com.sun.net.httpserver.HttpServer 包

java - 将数组列表用于状态机