Java的package语法功能导致的执行错误

在看<Thinking in the Java>,测试它的sample 程序,发现只要有package语法的,编译都能通过,就是执行的时候会发如下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: Music (wrong name: polymorphism/music/Music)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClassCond(Unknown Source)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$000(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: Music.  Program will exit.

 

在网上查了一下,并且经过我的测试验证,原因是我是在当前程序路径下执行的这个程序:

C:/work/source_code/java/thinking_in_JAVA/TIJ4-code/polymorphism/music>java Music

Java JDK1.6(java version "1.6.0_25") 好像依然比较傻,处理不了这种情况,我们必须要把全部的class路径都给点出来:

java polymorphism/music/Music

这样才可以,如果没有package语法,有的时候直接java Music就搞定了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值