JAVA_HOME:C:\Program Files\Java\jdk1.6.0_10
PATH:%JAVA_HOME%/bin;%JAVA_HOME%/jre/bin
CLASSPATH:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%java_home%\jre\lib\rt.jarhelloworld.java:public class helloworld{public static void main(String[] args){System.out.println("Hello World! Juhen!");
}
}我把helloworld.java放到C:\Program Files\Java\jdk1.6.0_10目录下,命令行的当前路径也是C:\Program Files\Java\jdk1.6.0_10-version没问题,javac也没问题,可是一运行java编译,就抛出异常:
Exception in thread "main" java.lang.NoClassDefFoundError:helloword/java
Caused by:...
          ...
Could not find the main class:helloworld.java. Program will exit.究竟要怎样改啊?!!(不能啥事儿都让eclipse弄吧,但自己玩儿java怎就那么费劲呢。)
求个妥儿妥儿的保险解决办法!谢谢大!

解决方案 »

  1.   

    不用把helloworld.java放到C:\Program Files\Java\jdk1.6.0_10目录下 随便放一个地方就行
    比如d:/下
    在dos下打开 d:javac hello.java
    java hello
      

  2.   

    是 java hellworld 
    不是java hellworld.java
    楼主你是这个问题吧。
      

  3.   

    。原来如此,我太蠢了顺便问下,linux下也是这个环境变量么?除了%换成$之类的格式问题,对应的包也是这些?
    其实我要编译的是SWT程序,打成jar包了,./我的程序.jar后还是抛出以上的异常。
      

  4.   

    第一步,检查 类名与文件名是否相同
    文件名:java语法固定"public修饰的类的名称必须与java文件同名!包括大 小写"
    比如 public class HelloWorld{ .....
    那么文件名一定只能是HelloWorld.java,看仔细了!第二步,检查main方法的四要素
    1,修饰符 public static ;2,返回值类型 void; 3,main 关键字;4,参数列表String args [] 
    main方法做为java应用程序的入口,.java骨架中四要素缺一不可,
    main方法的声明应该是这样子的:
    public static void main(String[] args) 
    第三步,javac后面跟的参数是文件名,但java 后面跟的是类名!
    这是我开始学JAVA是犯的错,java HelloWorld.class,然后就报错。后来才弄明白,应该是java HelloWorld。
    我犯的就是这个错误,自己先是看了环境变量的配置和其他的设置都是正确,就是报这个错误,最终发现原来java 后面跟的应该是类名,而不是文件名第四步,检查设置classpath
    不仅是在安装JDK时要设置的内容,一般来说最好还要自己设置一个目录来存放自己的类文件的。比如d:/class目录。
    设置classpath=%classpath%;d:/class
    那么,现在将HelloWorld.class文件COPY到d:/class目录下,再java HelloWorld应该就OK了。第五步,结合第3点和第4点
    如果你的类是属于某一个包的,比如这样一个类sony.test.HelloWorld,那么按照我在第4点中说的目录来说,就应该将HelloWorld.class文件存放到d:/class/sony/test/目录下。
    执行的时候应该参考第3点中说的,按类名执行:java sony.test.HelloWorld。
      

  5.   

    lz 编译是 javac helloworld.java
       运行是 java helloworld    --运行的是你编译好的class 文件,并不是带.java的源文件,这个要搞清楚lz 首先要明白 设置path 跟 classpath的含义
    在命令行下随便执行java的一个命令,比如说:javac xxx.java 或者是 java xxx等等 系统首先在当前目录下寻找此命令,如果当前目录下没有会去你设置的path环境变量所指定的那些目录挨个寻找,找到就运行,找不到肯定要报错.
    classpath 也是一样的,是指定java虚拟机从哪个目录来加载你所运行的classes文件.先从命令行的当前目录下查找,有就执行,如果当前目录下没有,就去classpath指定的目录去查找。如果还没有就会报Exception in thread "main" java.lang.NoClassDefFoundError