A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 马亚冲 黑马帝   /  2011-8-25 09:40  /  2300 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

今天试一下命令行里写代码吧,用管开发工具里,现在练习一下命令行里开发,可是出现错误:[code=java]package xg.myc;

public class Demo02{
        public static void main(String[] args){
                System.out.println("Demo02");
        }
}[/code]F:\java\xg\myc>java Demo02
Exception in thread "main" java.lang.NoClassDefFoundError: Demo02 (wrong name: xg/myc/Demo02)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
        at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: Demo02.  Program will exit.

加不加package xg.myc;javac没问题,但是加上package xg.myc;后运行出现以上错误???????
晕了

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1

查看全部评分

7 个回复

倒序浏览
黑马网友  发表于 2011-8-25 09:49:07
沙发
加上包名的类之后类的名称就是完整包名+类名了,以你的例子为现在类的名字就是xg.myc.Demo02,运行的时候要回到跟xg同级的目录下,即java xg.myc.Demo02这样就不会报错了

[quote]Exception in thread "main" java.lang.NoClassDefFoundError: Demo02 (wrong name: xg/myc/Demo02)
[/quote]

其实报错的地方提示了找不到类[quote](wrong name: xg/myc/Demo02)
[/quote],就是你的类现在不是叫Demo02的原因,而是xg.myc.Demo02

评分

参与人数 1技术分 +2 收起 理由
wangfayin + 2 今天没分了,先给你1分!

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-8-25 17:18:53
藤椅
那关于java命令行的编译运行和目录的关系的,你知道哦和常用的命令有那些呢,举例说明一下吧  
谢谢了
回复 使用道具 举报
黑马网友  发表于 2011-8-25 20:54:13
板凳
命令还是javac编译,,java运行啊。。
如果.java中有package 名。。 那java/javac时  ,进入该package平级目录 ,再加上 包名.类名就好了
如d:\test\one\Test.java         而Test.java 的package为one
cmd中。。cd d:\test   回车
                        d:         回车  
                    javac one.Test.java  回车
                   java one.Test

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1 不错噢!

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-8-25 22:35:28
报纸

回复 藤椅 的帖子

最常用的就是javac和java命令了,其他的除了javadoc外我都没用过
回复 使用道具 举报
黑马网友  发表于 2011-8-25 22:54:28
地板
哦,明白了。谢谢楼上两位
回复 使用道具 举报
黑马网友  发表于 2011-8-25 23:38:49
7#
互相学习:handshake
回复 使用道具 举报
黑马网友  发表于 2011-8-29 15:46:24
8#
加上包名即可
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马