习惯了eclipse,连CMD下运行java都不会了,请指教:1,jdk也成功安装,cmd下敲“javac -h”正常
2,目录:e:\workspace\cmd_java\Test.java
3,代码:package ok;
public class Test{
    public static void main(String str[]){
System.out.println("--------cmd运行java!---------");
    }
}4,运行e:\> javac -cp e:\workspace\cmd_java e:\workspace\cmd_java\Test.java
   成功,且Test.class也在e:\workspace\cmd_java\目录下
5,运行e:\> javac -cp e:\workspace\cmd_java ok.Test.class   报错:Exception in thread "main" java.lang.NoClassDefFoundError: ok/Test/class如果:
5,运行e:\> javac -cp e:\workspace\cmd_java ok.Test   报错:Exception in thread "main" java.lang.NoClassDefFoundError: ok/Test请指教!

解决方案 »

  1.   


    javac 只对java文件编译,也就是说只能对.java的文件操作。你那些文件格式都不对。
      

  2.   

    package的层次和目录的层次结构是一致的。
    如果你的classpath是cmd_java,请去掉Test.java中的package ok;如果不去,请在Test.java放在cmd_java\ok中
      

  3.   

    楼主是不是想要运行文件呀
    这样你得用java这个命令呀
    比如运行你的程序,你就要到e:\workspace\cmd_java下
    运行:java ok.Test而不是用javac,javac只是用来编译
      

  4.   

    执行不是应该这样的么……
    java e:\workspace\cmd_java ok.Testjava <class文件名>
    而且文件名不需要.class
      

  5.   

    楼主,javac喊你把它的c去掉.
      

  6.   

    不好意思,我敲错代码了:
     javac -cp e:\workspace\cmd_java ok.Test.class
    改为:
     java -cp e:\workspace\cmd_java ok.Test.class
     
    还是那个错误:
    报错:Exception in thread "main" java.lang.NoClassDefFoundError: ok/Test 
      

  7.   

    java -cp e:\workspace\cmd_java;%classpath% ok.Test结贴.
      

  8.   


    java 执行时不用带class后缀
      

  9.   


    javac -cp e:\workspace\cmd_java ok.Test.class 



    javac -cp e:\workspace\cmd_java ok.Test

    结果都一样报错:
    Exception in thread "main" java.lang.NoClassDefFoundError: ok/Test 
      

  10.   

    晕,不要用javac!!!!!!!!!!!!!!用java
    直接拷我#8的行了.
      

  11.   

    哈哈,我怎么这么马虎!
     
    声明一下

    凡是 运行的地方 "javac" 都是我马虎写错了,我的本意是"java"
    编译和 运行我还是分得清的
    给大家带来了误导,不好意思!
      

  12.   

    不行报错为:
    Exception in thread "main" java.lang.NoClassDefFoundError:Files\java\jdk1/6/0_02\lib\tools/jar;D:\Program
      

  13.   

    oh
    java -cp "e:\workspace\cmd_java;%classpath%" ok.Test加多两个引号.
      

  14.   

    其实,如果你classpath里面有.
    就这样也可以了:
    java ok.Test 
      

  15.   

    什么什么呀,基础啊基础
    假设项目根目录为 e:\workspace\cmd_java
    既然
    package ok;
    public class Test
    ...
    那么 Test.java 这个文件一般应该放在 e:\workspace\cmd_java\ok 下,这样整理起来比较方便
    如果一定要放在 e:\workspace\cmd_java下编译,
    那么编译时需要指定 -d参数,让编译器自动生成包路径:
    javac -cp e:\workspace\cmd_java;%classpath% -d e:\workspace\cmd_java  e:\workspace\cmd_java\Test.java
    此时会发现 Test.class 是在 e:\workspace\cmd_java\ok 下运行的话:
    java -cp e:\workspace\cmd_java;%classpath% ok.Test
      

  16.   

    1. D盘有com/demo.java文件
    2. 命令行 
        1> d:
       2> cd com
       3> javac -d ./ demo.java
       4> java com.demo
      

  17.   

    对了,如果 %classpath% 里有空格的话,需要用引号包起来即
    javac -cp "e:\workspace\cmd_java;%classpath%" -d e:\workspace\cmd_java  e:\workspace\cmd_java\Test.java 
    此时会发现 Test.class 是在 e:\workspace\cmd_java\ok 下 运行的话: 
    java -cp "e:\workspace\cmd_java;%classpath%" ok.Test 
      

  18.   

    谢谢,各位的热心帮助,
    运行出来了
    按照20楼的方法
    e:\> javac -d e:\workspace\cmd_java e:workspace\cmd_java\Test.java
    e:\workspace\cmd_java> java ok.Test
    结果:

    --------cmd运行java!---------
    大家可以试一下。我发这帖子,因为Eclipse已经运行web程序了,我想再写个java测试一下,自己的web程序结贴
      

  19.   

    晕,运行着web程序照样可以单独跑java小程序啊