我用的是1.6的JDK SUN官网下的:jdk-6u10-rc-bin-b28-windows-i586-p-21_jul_2008.exe
问题一:
   用cmd 编译class 文件的时候 出错就出现乱码信息,没出错就正常???????classpath  path 设置都正确.
问题二:
   classpath里面不加".;" 也能正常编译运行.?????新版本不用加了吗?
问题三:
   自定义包的问题:
   D:\java\think\test\testa目录下:PrinTemp.java文件如下:   package testa;
   public class PrinTemp
    {public static void main(String[] args)
     {System.out.println("Printemp is already done");}
    }编译正常.
   D:\java\think\test目录下文件:Test.java  import testa;
   public class Test
    {public static void main(String[] args)
      {PrinTemp a=new PrinTemp();
     }
    }
  
  CMD当前为:D:\java\think\test> 编译Test.java出错!!!!??????????
烦了好几天了,请高手帮帮忙吧!
  
  

解决方案 »

  1.   

    javac  Test.java  ?
      

  2.   

    在CMD:D:\java\think\test>下 输入javac  Test.java  是这样 ,不正确吗?
    (Test.java 文件是在D:\java\think\test下啊 )
      

  3.   

    为什么还这么麻烦,用eclipse,让它直接生成
      

  4.   


     import testa.PrinTemp ; 
      public class Test 
        {public static void main(String[] args) 
          {PrinTemp a=new PrinTemp(); 
        } 
        } 
    另外你要先编译PrinTemp ,保证 PrinTemp.class在testa目录下
      

  5.   

    至于你出现乱码的原因是因为你的CMD窗口  默认代码页编码不支持中文可以这样设置右键 CMD窗口左上角,默认代码页 改为简体中文
      

  6.   

     import  testa.PrinTemp; 
      public class Test 
        {public static void main(String[] args) 
          {PrinTemp a=new PrinTemp(); 
        } 
        } 
      package  testa; 
      public class PrinTemp {
      public PrinTemp(){
       System.out.println("Printemp is already done");
       }
        public static void main(String[] args) 
        {System.out.println("Printemp is already done");} 
        }发现如果不使用public PrinTemp(){}并不会打印"Printemp is already done",另外Test.Java和PrinTemp.java同在teata文件夹内,应该可以使用不声明为public的PrinTemp(){}呀?但为什么实际不可以呢?期待高手回答。
      

  7.   

    编译时应带包名:
    CMD:D:\java\think\test>下 输入javac testa\Test.java
    CMD:D:\java\think\test>下 输入javac testa\PrinTemp.java
      

  8.   


    1、因为你还没有创建PrinTemp对象
    2、看你两个类的package语句,两个类不是在同一个包下面