我正在编写一个没有任何IDE的简单Java程序,并且无法从另一个类中调用包中的一个类。 这是我的目录结构:
test/
|_ B.java
|_ pack/
|_ A.java
|_ A.class
我要从B.java调用A.java。
我的A.java是一个简单文件:
package pack;
public class A{
public void msg(){
System.out.println("Hello");
}
}
我在test/
内使用javac -d . pack/A.java
编译了A.java,并且没有任何问题。
B.java:
import pack.A;
class B{
public static void main(String args[]){
A obj = new A();
obj.msg();
}
}
我在Linux的test/
目录中,当我使用javac -d . B.java
进行编译时,编译器向我显示了一些错误,最重要的是:
B.java:1: error: package pack does not exist
import pack.A;
^
所有其他错误是此错误的结果。 我试图更改目录,但到目前为止没有任何效果,我进行了一些研究,但没有发现任何结果。 有人可以帮我吗?
答案 0 :(得分:0)
如@Jasper所示,问题是CLASSPATH变量,它不是默认变量。
解决方案是在编译/执行时更改CLASSPATH或指定路径。可以使用javac -cp . -d . B.java
进行编译,并使用java -cp . B
执行