package name1;
public class A{
public void show(){ System.out.println("ok"); }}import name1.*;class B{ public static void main(String [] args){ A a=new A(); a.show(); }}
我建了name1文件然后把编译好的A.class防在name1下,classpath也添加了name1的路径,再次编译
B时提示:1个错误
B.java:25:无法访问A
错误的类文件: .\A.java
文件不包含类A
请删除该文件或确保该文件位于正确的类路径子目录中.
A a=new A();
朋友可不可以告诉我这是个什么错误该怎么解决谢谢!
public class A{
public void show(){ System.out.println("ok"); }}import name1.*;class B{ public static void main(String [] args){ A a=new A(); a.show(); }}
我建了name1文件然后把编译好的A.class防在name1下,classpath也添加了name1的路径,再次编译
B时提示:1个错误
B.java:25:无法访问A
错误的类文件: .\A.java
文件不包含类A
请删除该文件或确保该文件位于正确的类路径子目录中.
A a=new A();
朋友可不可以告诉我这是个什么错误该怎么解决谢谢!
其次在添加CLASSPATH的路径时,注意只添加到name1的上层文件夹.
如 C:\test\name1\A.class ,那么你的CLASSPATH=C:\test;具体原因建议楼主研究研究<深入Java虚拟机>这本书,其中缘由便一清二楚
B.java在编译连接A.class文件时,编译器首先搜索到了A.java,再去编译它,此刻会检查A包路径和其所在文件夹路径是否匹配,由于不匹配故报错.
即如lz所示错误:错误的类文件: .\A.java.
此时编译器还没有搜索到name1包下面的A.class文件,就被上面的错误拦截了楼主需要把A.java源文件从CLASSPATH的搜索路径移除
再编译B就可以通过了.
或者 把A a=new A()中类A声明改为全限定名:name1.A a = new name1.A();