程序中加入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选项
楼主基础知识有所欠缺, 请参考书!