开发者

How to access Java classes in same package

I have two java files (A.java + B.java) in src/com/example

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

If I cd to one level above src and type javac -d classes src/com/ex开发者_如何学Cample/B.java

I get an error saying cannot find symbol A?


javac doesn't know where to find source class you have to specify it with -sourcepath option.

See:

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>


That's because Java doesn't know where to find the source of the other file. You need to either cd into the src directory, or specify the src directory on the -sourcepath.


Try javac -d classes src/com/example/*.java

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜