Java 无法从另一个包调用类。包不存在错误
我的类路径 E:\classes\sample 我从c:\Program Files\Java\jdk1.4\bin运行 E:\classes\sample\Test1\sample1.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
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编译器将根据包名称创建文件夹并将编译的类放在那里。谢谢。但还是同样的错误。。