日期:2014-05-20  浏览次数:20769 次

程序中加入package后,执行时出现问题~!!!!!!!
大家好,我想问一个问题,
我写了一个如下的类
package   hello;
class   HelloWorld   {  
public   static   void   main(String[]   args)   {  
//   Display   "Hello   World! "  
System.out.println( "Hello   World! ");  
}  
}

此时保存到D:\test下面,然后进入DOS的CMD中切换到这个目录下面执行
javac   -d   .   HelloWorld.java以后,此时我在CMD中将目录切换到我的包hello中,然后运行java   HelloWorld却出现了如下错误Exception   in   thread   "main "   java.lang.NoClassDefFoundError:   Hello(wrong
hello/HelloWorld)
at   java.lang.ClassLoader.defineClass0(Native   Method)
at   java.lang.ClassLoader.defineClass(ClassLoader.java:486)
at   java.security.SecureClassLoader.defineClass(SecureClassLoader.
1)
at   java.net.URLClassLoader.defineClass(URLClassLoader.java:248)
at   java.net.URLClassLoader.access$100(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:297)
at   sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:286)
at   java.lang.ClassLoader.loadClass(ClassLoader.java:253)
at   java.lang.ClassLoader.loadClassInternal(ClassLoader.java:313)


我找了相关的文章都没有解决这个问题,请大家帮忙看看

------解决方案--------------------
少了public
------解决方案--------------------
看你的classpath了,你这样执行虚拟机会认为HelloWorld.class文件在D:\test\hello\hello下面(好像是)。
一般情况下在命令行D:\test目录下执行java hello.HelloWorld
------解决方案--------------------
Java文件如下:
D:\test\hello\HelloWorld.java

进入test目录下:
java hello.HelloWorld
可运行, 也可带上-cp选项

楼主基础知识有所欠缺, 请参考书!