我刚开始学java,装的是java1.6,抄了了两个小代码去运行都没成功(没有输出想要的结果)
,这是其中一个,请懂的给指点指点
C:\Users\acer>e:E:\>cd myjavaE:\myjava>javac HelloWorld.javaE:\myjava>java HelloWorld
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld
Caused by: java.lang.ClassNotFoundException: HelloWorld
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        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: HelloWorld.  Program will exit.E:\myjava>

解决方案 »

  1.   

    classpath变量有没有设对?
    .;
    有没有加,这个表示在当前目录下找class
      

  2.   

    这是源代码,请问该怎么改
    public class HelloWorld { public static void main(String args[])
     { System.out.println("Hello World!"); } } 
      

  3.   

    代码没问题 去看下path 和classpath的设置
      

  4.   

    应该是classpath的问题,在classpath里加入  .;
      

  5.   

    你说的.;加在什么地方
    这是我设置的classpath,帮我看看,谢谢
    %JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
      

  6.   

     你有没有加 package什么的。有的话这样是不行的。有package的话要这样编译
    javac -d . HelloWorld.java
    -d的意思是展开新的目录,目录结构就是你package包的结构,后面的点代表的是在哪里展开这个目录,.代表的是当前目录然后运行的时候需要
    java 包名.类名如果没有加package的话那么就是他没法去寻找这个类,虚拟机寻找类的路径通过环境变量classpath来指定,可以不指定,默认为.  .就是当前目录,如果指定了就必须在指定的路径上加上 .
      

  7.   

    这个应该没有加,我刚才按你说的做了,还是不行,上面说javac:找不到文件: -d.HelloWorld.java
      

  8.   

    .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
    改成这样