我的“hello world!”按照教科书里代码 Beispiel.java 如下:
1)package de.jse6buch.kap02
2)public class Beispiel
....
教科书里解释,第一行指出:Beispiel.java(根据以知类名Beispiel)文件在目录..\de\jse6buch\kap02下。当前目录..\de\jse6buch\kap02 运行javac.exe :javac Beispiel.java 回车
(如正常 在..\de\jse6buch\kap02下生成 Beispiel.class文件)
再运行java.exe: java Beispiel (如书中介绍,不能加后缀.class)执行报错:Exception in theread "main" java.lang.NoClassDefFoundError:Beispiel(wrong name:
....但如果 键入 java de.jse6buch.kap02.Beispiel
就运行正常。请前辈能人解释下为什么要使用package
是不是用package是 都要需要在执行 键入package 指示的路径(象问题中的de.jse6buch.kap02)

解决方案 »

  1.   

    使用package的目的在于使代码根据不同的功能分成不同的组,不同包下的访问权限是不一样的,受访问修饰符(像public private protected等)的限制。
    比如,默认的访问修饰符(就是前面不加访问修饰符)只能访问同一个包下的类,如果是在不同的包下,那就没有访问权限。所以,包和访问控制符一起能够增加部分安全性。
      

  2.   

    package解决的问题主要有两个:
    1.解决了类的命名冲突的问题,在不同的包中的类的类名可以相同
    2.解决在大的工程中类的数量过大不好管理的问题,可以按照模块或业务类型将类封装到不同的包中张孝祥的<<java就业培训教程>>中关于包的讲解不错,能借到的话建议看一看那部分内容
      

  3.   

    为什么
    在Beispiel.class 编译生成后 
    执行 java   de.jse6buch.kap02.Beispiel 顺利!
    执行 java   Beispiel 而包错误找不到 Beispiel.class 呢?
      

  4.   

    允许我重复我的问题是不是在使用package了时   都要需要在执行java.exe时 都需要键入package后  指示的路径(象问题中的de.jse6buch.kap02)吗?