这是一个我抄的命令行程序,编译没有问题,但运行时又出现了这个错误:
java.lang.NoClassDefFoundError: book/basic/CommandArgs
Caused by: java.lang.ClassNotFoundException: book.basic.CommandArgs
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
Could not find the main class: book.basic.CommandArgs.  Program will exit.
Exception in thread "main" 
文件存在E:\Java_project  CLASSPATH路径设置如下:.;D:\Sun\AppServer\jdk\lib\dt.jar;D:\Sun\AppServer\jdk\lib\tools.jar;D:\Sun\AppServer\lib\j2ee.jar;D:\tomcat\bin;E:\Java_project;//文件名:CommandArgs.java
package book.basic;public class CommandArgs
{  
public static void error1(String errmsg)
{
System.err.println(errmsg);
System.exit(1);
}
public static void main(String[] args)
{
String usageMsg="Usage: CommandArgs[options]\n"
+"Where [options] are:\n"
+"-help                      显示帮助信息\n"
+"-n<name>              设置参数的名字\n"
+"-v<value>               设置参数的值\n";
String name=null;
String value=null; for (int i=0;i<args.length;i++)
{
if(args[i].equals("-n"))
{
if((i+1)==args.length)
{
error1 ("Error: -n requires an argument.");
}
name=args[++i];
}
else if(args[i].equals("-v"))
{
if((i+1)==args.length)
{
error1("Error: -v requires an argument.");
}
  value=args[++i];
}
else if (args[i].equalsIgnoreCase("-help"))
{
System.out.println(usageMsg);
System.exit(0);
}
else
{
error1("Error: argument not recognzied:"+args[i]);

}
System.out.println("name: "+name+"; value:"+value);
}
 }
}

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【JAVA_mentu】截止到2008-07-17 18:16:32的历史汇总数据(不包括此帖):
    发帖的总数量:8                        发帖的总分数:150                      每贴平均分数:18                       
    回帖的总数量:30                       得分贴总数量:10                       回帖的得分率:33%                      
    结贴的总数量:8                        结贴的总分数:150                      
    无满意结贴数:1                        无满意结贴分:20                       
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:12.50 %               无满意结分率:13.33 %                  
    敬礼!
      

  2.   

    命令行中输入:java book.basic.CommandArgs -help 或 java book.basic.CommandArgs -n name -v reader
      

  3.   

    没有生成包结构吧
    在命令行下面这样编译
    javac -d . CommandArgs.java这样运行
    java book.basic.CommandArgs 
      

  4.   


    的确是,以前问过你同一个问题,不过设置好CLASSPATH路径就没事了。现在又要这样编译,感觉很奇怪。
      

  5.   

    我怀疑是不是classpath=.;缺少“.;"这一项的问题。
    在我的系统上没有问题。也不用使用java -d .等操作。
      

  6.   


    我是这样设定的,有.;啊文件存在E:\Java_project  CLASSPATH路径设置如下:.;D:\Sun\AppServer\jdk\lib\dt.jar;D:\Sun\AppServer\jdk\lib\tools.jar;D:\Sun\AppServer\lib\j2ee.jar;D:\tomcat\bin;E:\Java_project;
      

  7.   

    CLASSPATH路径设置如下:
    .;D:\Sun\AppServer\jdk\lib\dt.jar;D:\Sun\AppServer\jdk\lib\tools.jar;D:\Sun\AppServer\lib\j2ee.jar;D:\tomcat\bin;E:\Java_project;
    这个无所谓了,问题解决了就好。
      

  8.   

    直接用ide开发多好呢。避免每次自己去启动命令行,这样不用为这些琐碎的东西而烦恼了。