首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

运行中的Class有关问题

2011-12-25 
运行中的Class问题/**Copyright(c)2000DavidFlanagan.Allrightsreserved.*ThiscodeisfromthebookJavaExamp

运行中的Class问题
/*
  *   Copyright   (c)   2000   David   Flanagan.     All   rights   reserved.
 
      *   This   code   is   from   the   book   Java   Examples   in   a   Nutshell,   2nd   Edition.
 
      *   It   is   provided   AS-IS,   WITHOUT   ANY   WARRANTY   either   expressed   or   implied.
 
      *   You   may   study,   use,   and   modify   it   for   any   non-commercial   purpose.
 
      *   You   may   distribute   it   non-commercially   as   long   as   you   retain   this   notice.
 
      *   For   a   commercial   use   license,   or   to   purchase   the   book   (recommended),
 
      *   visit   http://www.davidflanagan.com/javaexamples2.
 
      */
package   com.davidflanagan.examples.applet;

import   java.applet.*;                   //   Don 't   forget   this   import   statement!
import   java.awt.*;                        
                                                          //   Or   this   one   for   the   graphics!

import   java.util.Date;                 //   To   obtain   the   current   time
import   java.text.DateFormat;    
                                                          //   For   displaying   the   time

/**  
  *   This   applet   displays   the   time,   and   updates   it   every   second  
  **/

public   class   Clock   extends   Applet   implements   Runnable   {
       
    Label   time;                               //   A   component   to   display   the   time   in
       
    DateFormat   timeFormat;         //   This   object   converts   the   time   to   a   string
       
    Thread   timer;                           //   The   thread   that   updates   the   time
         
    volatile   boolean   running;   //   A   flag   used   to   stop   the   thread

        /**
         
                                                                                                                                      *   The   init   method   is   called   when   the   browser   first   starts   the   applet.


           
                                                                                                                                      *   It   sets   up   the   Label   component   and   obtains   a   DateFormat   object
         
                                                                                                                                  **/
         
      public   void   init()   {

              time   =   new   Label();

              time.setFont(new   Font( "helvetica ",   Font.BOLD,   12));
 
              time.setAlignment(Label.CENTER);

              setLayout(new   BorderLayout());

              add(time,   BorderLayout.CENTER);

              timeFormat   =   DateFormat.getTimeInstance(DateFormat.MEDIUM);
       
    }

        /**
         
                  *   This   browser   calls   this   method   to   tell   the   applet   to   start   running.
         
                  *   Here,   we   create   and   start   a   thread   that   will   update   the   time   each
         
                  *   second.     Note   that   we   take   care   never   to   have   more   than   one   thread
         
                **/
       
    public   void   start()   {
 
          running   =   true;                                 //   Set   the   flag  

          if   (timer   ==   null)   {                       //   If   we   don 't   already   have   a   thread
         
          timer   =   new   Thread(this);     //   Then   create   one


       
          timer.start();                           //   And   start   it   running

        }
       
  }

        /**
           
                *   This   method   implements   Runnable.     It   is   the   body   of   the   thread.     Once
       
                *   a   second,   it   updates   the   text   of   the   Label   to   display   the   current   time
         
              **/
       
    public   void   run()   {
 
          while(running)   {           //   Loop   until   we 're   stopped
     
                                                  //   Get   current   time,   convert   to   a   String,   and   display   in   the   Label
       
                    time.setText(timeFormat.format(new   Date()));    
        //   Now   wait   1000   milliseconds
       
                    try   {   Thread.sleep(1000);   }
       
                    catch   (InterruptedException   e)   {}

    }
//   If   the   thread   exits,   set   it   to   null   so   we   can   create   a   new   one
//   if   start()   is   called   again.

                    timer   =   null;
        }

        /**
         
                                                                    *   The   browser   calls   this   method   to   tell   the   applet   that   it   is   not   visible
       
                                                                    *   and   should   not   run.     It   sets   a   flag   that   tells   the   run()   method   to   exit
         
                                                                  **/


       
    public   void   stop()   {   running   =   false;   }  

        /**
         
                                                                                                *   Returns   information   about   the   applet   for   display   by   the   applet   viewer
       
                                                                                              **/
    public   String   getAppletInfo()   {
return   "Clock   applet   Copyright   (c)   2000   by   David   Flanagan ";
        }

}
程序是copy下来的,在C:\java   保存为.java   文件,编译生成.class文件在C:\java中存盘,编译可以通过,第一次直接运行输入命令行   java   Clock显示:
Exception   in   thread   "main "   java.lang.NoclassDefoundError:Clock <wrong   name:   com/davidflanagan/examples/applet/Clock>
at   java.lang.ClassLoader.defineClass1 <Native   Method>
at   java.lang.ClassLoader.defineClass1 <Unknown   Source>
at   java.security.secureClassLoader.defineClass1 <Unknown   Source>
.
.
.
在命令提示符后输入set   CLASSPATH=.:C:\java后在运行java   Clock
运行显示:
Exception   in   thread   "main "   java.lang.NoclassDefoundError:Clock
哪位大虾帮忙看看,不胜感激!


[解决办法]
package com.davidflanagan.examples.applet;

不对啊


[解决办法]
异常是没有类发现 意思就是没有找到你的类
你把类保存到F:盘跟目录下
set classpath=f:\
javac com.davidflanagan.examples.applet.Clock.java
[解决办法]
要在包外编译和运行
[解决办法]
这是一个Applet小程序,不能用javac 直接运行,需要用IE嵌入运行,或者用开发工具

[解决办法]
applet viewer
[解决办法]
关注
[解决办法]
1,包路径不对;
2,applet程序;
3,没有main函数。
你还想怎么折腾你的jvm?

热点排行