路径:
f:\number1;
f:\number2;
两个程序:program1:
package number1;
public interface Interface1
{
 interface1Method(){}
}
program2:
package number2; 
import number1.*;
public class Class1
{
  public protected class InnerClass implements Interface1
  {
  public void interface1Method(){};
  }
}
我在写好第一个程序后,编译通过。并且把F:\;添加到了classpath里后
classpath如下:F:\;C:\Program Files\Java\jdk1.6.0_07\bin;.;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem 。然后编译第二个程序,但是报错说无法找到包number1.
搜了半天始终不解。所以来这里问下。希望各位帮忙。感激不尽。
谢谢!!

解决方案 »

  1.   

    你确认Interface1的class文件存在吗?
      

  2.   

    把number1文件夹放在number2中就可以了,不需要加为环境变量。
    还有第一个接口中的方法要有标识符,如void
    第二个类中的内部类不能同时声明为public和protected
      

  3.   

    找不到包的问题:
    你设置好classpath后一定要重新启动cmd,看你环境变量应该没问题或者直接在f:\目录下 javac number2\Class1.java或者在f:\number2目录下 javac -cp ..\ Class1.java 命令都测试过了,你把程序中的错误先改一下,第一个程序编译都过不了。
      

  4.   

    你确定包是加在了classpath下,而不是path下吗?
      

  5.   

    你把那个public protect  改掉,然后把把先编译好的number1拷入number2中就行了
      

  6.   

    ================Interface1.java====================
    路径: 
    f:\number1; 
    interface Interface1 

    void interface1Method();

    ==================Class1.java======================
    路径:
    f:\number2;  
    class InnerClass implements Interface1 
      { 
       public void interface1Method(){
    System.out.println("Welcome!");
    }; 
      } 
    public class Class1 

      public static void main(String[] args)
      {
    new InnerClass().interface1Method();
      }
    }
    一:先编译Interface1.java得到Interface1.class
    二:右键"我的电脑"-->属性-->高级-->环境变量-->系统变量:创建变量名为ClassPath的变量值为f:\number1;
    三:编译\运行Class.java后显示:Welcome!
      

  7.   

    以前解答过类似问题,如果楼主还没有解决问题,可以参考:java编译时类路径的问题
    请阅读第8到15楼,有图哦,很直观的。呵呵。
      

  8.   

    三:编译\运行Class.java后显示:Welcome!   我刚写错了 是编译\运行Class1.java
      

  9.   

    路径: 
    f:\number1; 
    f:\number2; 
    两个程序: 
    ===========================================================
    program1: 
    =========================================================
    package number1; 
    public interface Interface1 

    void interface1Method(){} 

    =========================================================
    program2: 
    =============
    package number2; 
    import number1.*; 
    public class Class1 

      protected class InnerClass implements Interface1 
      { 
      public void interface1Method(){}; 
      } 

    不好意思,程序确实有点bug,我 改正过来了 ,让各位见笑了。