我有两个程序
目录/ home / redhat / Documents / java1 / j1中的一个

演示1.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”中声明第二个类,而不是默认包,因为将根源路径放在已经包含包的另一个根路径中不是一个好主意。

10-04 23:31