首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Exception >

java.lang.NoClassDefFoundError:Beispiel(wrong name

2014-01-26 
我的&ldquohello world!&rdquo按照教科书里代码 Beispiel.java 如下: 1)package de.jse6buch.kap02 2)pub

我的“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)



------解决方法--------------------------------------------------------
使用package的目的在于使代码根据不同的功能分成不同的组,不同包下的访问权限是不一样的,受访问修饰符(像public private protected等)的限制。
比如,默认的访问修饰符(就是前面不加访问修饰符)只能访问同一个包下的类,如果是在不同的包下,那就没有访问权限。所以,包和访问控制符一起能够增加部分安全性。
------解决方法--------------------------------------------------------
package解决的问题主要有两个:
1.解决了类的命名冲突的问题,在不同的包中的类的类名可以相同
2.解决在大的工程中类的数量过大不好管理的问题,可以按照模块或业务类型将类封装到不同的包中

张孝祥的 < <java就业培训教程> > 中关于包的讲解不错,能借到的话建议看一看那部分内容

        

热点排行