黑马程序员技术交流社区

标题: java运行的问题 [打印本页]

作者: 曾公亮    时间: 2011-10-3 16:59
标题: java运行的问题
如果在一个文件中写入了包名,在DOS命令下编译能成功,运行时却总是报错:java.lang.NoClassDefFoundError
这时该怎么写java命令呢?
比如一个Test类,里面有包:package cn.itcast.base(属于这个包)
搞了半天,没搞也来,特来请教!!
[ 本帖最后由 曾公亮 于 2011-10-03  18:57 编辑 ]
作者: 匿名    时间: 2011-10-3 17:28
检查运行时是否带了java后缀, 文件名大小写错误、classpath的配置。
作者: 匿名    时间: 2011-10-3 17:55
[img]http://b93.photo.store.qq.com/psb?/5b205669-fff2-43c6-9efe-27ee832744e1/.lVYMc5kr4bzEmo5XxvzuA6poKaYCCwb48vztnYjEaU!/b/YYzlejfVMgAAYss5cDf4MgAA[/img]

[img]http://b93.photo.store.qq.com/psb?/5b205669-fff2-43c6-9efe-27ee832744e1/cEt3iwdxymLOkDNtH4fBvQNMM0HB*cI74VK5TyqCH8M!/b/YY83cDdcMwAAYq8JgTfQMgAA[/img]

以上内容是有一个类Test(package cn.itcast.base;),运行时输出test这个词,该类存放在java文件夹下,在java目录下创建一个文件夹cn.itcast.base,然后将在dos命令下生成的.class文件移动到文件夹cn.itcast.base下再运行即可成功!
作者: 曾公亮    时间: 2011-10-3 19:04
本帖最后由 曾公亮 于 2011-10-6 23:18 编辑

还是不行啊
作者: 匿名    时间: 2011-10-3 20:00
如果你是按我写的步骤执行还是不行的话,那就是你的classpath的设置问题了!
作者: 匿名    时间: 2011-10-3 20:34
可以了,每一级建一个文件夹,运行时还得把包名带上,java cn.itcast.base.Test
多谢开导!!!
作者: 成杰    时间: 2011-10-6 14:57
当打包后,在DOC下面编译或者运行时,记得要把包名带上   javac  java cn.itcast.base.Test.java   和  java    java cn.itcast.base.Test
这样编译才行,不然,打包后,找不到相应的类名,就会出现上述的 java.lang.NoClassDefFoundError 的错误!
作者: 陈晓东    时间: 2011-10-8 00:47
javac -d . Test.java
java cn.itcast.base.Test
如此而已 之所以找不到类 是因为你编译的时候没让包自动生成一层层文件夹
所以你运行的时候当然不会找到class文件了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2