一个简单的例子程序 : 
 class Hello {
    public static void main(String[] args) {
        System.out.println("Hello, world");
    }
}
可以成功编译 运行 
而加个 package package Hello; 
class Hello {
    public static void main(String[] args) {
        System.out.println("Hello, world");
    }
}则会出现   Exception in thread "main" java.lang.NoClassDefFoundErro:Hello <wrong name : Hello/Hello> 的错误请指教 package到底产生个什么效果?

解决方案 »

  1.   

    你必须这样将类放在 C:\myclass\Hello\Hello.class
    然后在C:\myclass中运行命令为
    java -cp . Hello.Hello因为这个类已经命名为Hello.Hello了
      

  2.   

    分类的作用嘛,如果某个类存在某个包,那么在引用这个类的时候要将包名一起写进去,比如:myPkg.Hello
      

  3.   

    package Hello; 
    class Hello 
    ---------------
    其中package Hello,指定一个文件夹Hello,在该文件夹下有你的类文件Hello.java
    你想用Hello.java时
    如果你import Hello.*;的话可以直接用Hello
    如果没有用import Hello.*;的话你要用Hello,只能用Hello.Hello。第一个Hello是包名,第2个才是类。
      

  4.   

    ChDw(米)   
    你必须这样将类放在 C:\myclass\Hello\Hello.class
    然后在C:\myclass中运行命令为
    java -cp . Hello.Hello
    因为这个类已经命名为Hello.Hello了请问: 在我给Hello.java 加上个package Hello;后,我需要手动将 Hello.java 放到原目录的Hello子目录中去?  
    另外 你给我的命令中 java -cp . Hello.Hello    -cp  是什么意思?   谢谢!
     TyroneChan(油亮脖子金黃腳) 
    如果某个类存在某个包,那么在引用这个类的时候要将包名一起写进去应该是用import命令吧    
    package 应当只是为当前所写的文件建立一个包吧  谢谢    
      

  5.   

    包名要与目录名一致的,-cp是classpath的意思
      

  6.   

    感谢各位的答复 让我多少明白了一点package的效用  
    加了package Hello; 后   
    我在当前目录下编译 javac Hello.java   产生一个Hello.class文件 
    然后将Hello.class文件拷贝到当前目录下的一个自己手动建立的Hello子文件夹中 
    最后用 java Hello.Hello 运行 成功   但这样让人感到很麻烦  package 不会自动建立子文件夹么? 
      

  7.   

    回复人: hnuwei612() ( ) 信誉:100  2005-5-18 11:35:11  得分: 0  
     
     
       
    感谢各位的答复 让我多少明白了一点package的效用  
    加了package Hello; 后   
    我在当前目录下编译 javac Hello.java   产生一个Hello.class文件 
    然后将Hello.class文件拷贝到当前目录下的一个自己手动建立的Hello子文件夹中 
    最后用 java Hello.Hello 运行 成功   但这样让人感到很麻烦  package 不会自动建立子文件夹么? ---------------------------------------------------------------
    你可以目录java下自己手动建立的Hello子文件夹把Hello.java放入其中,
    在java目录下有一个文件dd.java用到了包Hello,且在dd.java文件的第一行你必须加import Hello.*;
    这时你可以在java目录下,直接:javac dd.java;java dd运行程序,不用那么麻烦的!