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();
朋友可不可以告诉我这是个什么错误该怎么解决谢谢!

解决方案 »

  1.   

    如果你的name1包的路径是  C:\test\name1\A.class 的话使用 javac -classpath C:\test B.java 编译
      

  2.   

    在同一个java的source中是属于一个Package的,不需要Import。而且import是写在程序的最上端
      

  3.   

    楼主首先应当把A.java放到name1文件夹下,再编译.
    其次在添加CLASSPATH的路径时,注意只添加到name1的上层文件夹.
    如 C:\test\name1\A.class ,那么你的CLASSPATH=C:\test;具体原因建议楼主研究研究<深入Java虚拟机>这本书,其中缘由便一清二楚
      

  4.   

    再仔细看了一下你的错误,有新的发现.
    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();
      

  5.   

    谢谢superren1982:敬礼!!你的两中方法都可以实现让我有了很大的收获.再次谢谢!!