Java 无法从另一个包调用类。包不存在错误

Java 无法从另一个包调用类。包不存在错误,java,package,Java,Package,我的类路径 E:\classes\sample 我从c:\Program Files\Java\jdk1.4\bin运行 E:\classes\sample\Test1\sample1.java的源代码 package sample.Test1; class Sample1 { public void printThis() { System.out.println("WE are in sample1"); } } E:\classes\sample

我的类路径

E:\classes\sample

我从c:\Program Files\Java\jdk1.4\bin运行

E:\classes\sample\Test1\sample1.java的源代码

package sample.Test1;

class Sample1
{
    public void printThis()
    {
        System.out.println("WE are in sample1");
    }
}
E:\classes\sample\db\sample2.java的源代码

package sample.Test2;
import sample.Test1.Sample1;

class Sample2
{
    public static void main(String args[])
    {
        System.out.println("Main Class \n");
        Sample1 s = new Sample1();
        s.printThis();
    }
}

当我编译Sample2.java时,它显示错误。Sample1.java已编译。请帮助我。

它不编译的原因是您的第一个类(而不是
public
)具有默认可见性,因此它只能由同一个包中的类“查看”。您的第二个类位于不同的包中,因此无法使用它

要修复此问题,请在类中添加关键字
public

public class Sample1 {
编辑:
还有问题吗?我会使用像这样的IDE。它会告诉你问题是什么,并帮助你解决问题。

你不“调用”一个类,源文件与类名不同。请展示你的代码,以及你是如何编译它的。你需要的是.class文件,而不是.java:第一个是已编译的,第二个是源文件。是的,我有用于sample2.java的已编译类文件。我的运行方式是c:\Program Files\Java\jdk1.4\bin\javac E:\classes\sample\source\sample1.javarun
c:\Program Files\Java\jdk1.4\bin\javac E:\classes\sample\source\sample1
您的文件夹名称与您的包不匹配,Java编译器将根据包名称创建文件夹并将编译的类放在那里。谢谢。但还是同样的错误。。