我有两个程序 一个在目录/home/redhat/Documents/java1/j1
Demo1.java
package j1;
public class Demo1
{
public void print()
{
System.out.println("hi");
}
}
另一个在目录/home/redhat/Documents/java1/j
Demo2.java
import j1.*;
public class Demo2
{
Demo2()
{
Demo1 d=new Demo1();
}
}
当我说
javac -classpath /home/redhat/Documents/java1/j1 Demo2.java
我收到以下错误
Demo2.java:2: package j1 does not exist
import j1.*;
^
Demo2.java:7: cannot access Demo1
bad class file: /home/redhat/Documents/java1/j1/Demo1.java
file does not contain class Demo1
Please remove or make sure it appears in the correct subdirectory of the classpath.
Demo1 d=new Demo1();
^
2 errors
我想在 Demo2 中访问 Demo1 的实例 请帮忙。
最佳答案
你的类路径是错误的。您应该指向任何已声明包的根目录:
javac -classpath /home/redhat/Documents/java1 Demo2.java
我错过的其他前一步是 Demo1 类的编译。 Javac 编译器将查找“.class”文件,而不是“.java”文件。所以在执行之前你需要:
javac Demo1.java
作为一项改进,我建议您在包“j”而不是默认包中声明您的第二个类,因为将根源路径放在另一个已经包含包的根路径中并不是一个好主意。
关于java - 类路径规范,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3649553/