是不是你把文件的命名搞错那!
不会是命名为:Mycanvas.java吧!(它不是主要类不能以此命名)应该为:Example12_2.java(注意你设置的它才是public类!) 我编译是没有问题的。执行就不知道那!

解决方案 »

  1.   

    在public class Example12_2中加上:
    public static void main(String[] args){
        //函数体
    }
      

  2.   

    这是运行时错吧?不一定要MAIN才编译的啊
      

  3.   

    这是小程序,不是应用程序,我编译的也是Example12_2.java,但编译时出现Exception in thread "main" java.lang.NoClassDefFoundError:com/sun/tools/javac/Main错误,不知是什么原因,我想是不是环境设置有问题啊?
      

  4.   

    applet编译没问题吧,运行用appletviewer运行
      

  5.   

    我现在的环境设置如下:
    set path=C:\j2sdk1.4.2_04\bin;C:\j2sdk1.4.2_04\jre\bin
    set classpath=.;C:\j2sdk1.4.2_04\lib;C:\j2sdk1.4.2_04\jre\lib;C:\j2sdk1.4.2_04\jre\lib\rt.jar
    可还是不行,还是出现了如下提示:
    Exception in thread "main" java.lang.NoClassDefFoundError:com/sun/tools/javac/Main
    请各位高手帮忙解决这个问题,谢谢!!!
           
      

  6.   

    我这里编译没有问题.运行也正常
    我的环境变量是:classpath=.;C:\j2sdk1.4.2\lib\dt.jar;C:\j2sdk1.4.2\lib\tools.jar;
      

  7.   

    Example12_2.java 文件内容如下:import java.applet.*;
    import java.awt.*;
    import java.awt.event.*;
    class Mycanvas extends Canvas
    {
    int x,y;
    Mycanvas(int a,int b) {
    x=a;
    y=b;
    getSize();
    }
    public void paint(Graphics g)
    {
    g.setColor(Color.red);
    g.fillOval(50,50,4*x,4*y);
    g.drawString("气球已吹第"+x+"口气",20,350); }
    public Dimension getPreferredSize() {
    return new Dimension(200,100); }
    }
    public class Example12_2 extends Applet implements ActionListener{
    CardLayout mycard;
    Button button1,button2,button3;
    Mycanvas mycanvas[];
    Panel p;
    Panel p2;
    public void init()
    {
    setLayout(new BorderLayout());
    mycard=new CardLayout();
    p=new Panel(); p2=new Panel(); p.setLayout(mycard); button1=new Button("吹第一口气"); button2=new Button("再吹"); button3=new Button("吹最后一口气"); mycanvas=new Mycanvas[81]; for (int i=1;i<=80;i++) { mycanvas[i]=new Mycanvas(i,i); p.add("I am"+i,mycanvas[i]); } button1.addActionListener(this); button2.addActionListener(this); button3.addActionListener(this); p2.add(button1); p2.add(button2); p2.add(button3); add(p,"Center"); add(p2,"South"); } public void actionPerformed(ActionEvent e) { if(e.getSource()==button1) { mycard.first(p); } else if(e.getSource()==button2) { mycard.next(p); } else if(e.getSource()==button3) { mycard.last(p); } }}  Example12_2.html 内容为:
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=GBK">
    <title>
    HTML Test Page
    </title>
    </head>
    <body>
    Example12_2 will appear below in a Java enabled browser.<br>
    <applet
      codebase = "."
      code     = "Example12_2.class"
      name     = "TestApplet"
      width    = "400"
      height   = "300"
      hspace   = "0"
      vspace   = "0"
      align    = "middle"
    >
    </applet>
    </body>
    </html> 把它们放在c:\下,  javac Example12_2.java  编译正常。
     然后   appletviewer Example12_2.html即可出现需要结果。  怀疑这个错误有三种可能:
    1.jdk没有装好;
    2.环境变量设置;
    3.Exampel12_2同目录下的其他文件的错误.
      

  8.   

    我重装了jdk,还是不行,还是出现同样的问题。不但这个程序,别的程序在我的另一台机器上都能编译的,在这台机器还是出现同样的问题,不知是什么原因?
      

  9.   

    上面不是有人给你说了吗?
    CLASSPATH有问题:
    classpath=.;C:\j2sdk1.4.2\lib\dt.jar;C:\j2sdk1.4.2\lib\tools.jar;
      

  10.   

    而且在windows下输入javac时,能正常显示其javac的一些命令介绍。我的程序放在d:\java里的,一进入这个目录后,只输入javac这个命令,就出现“Exception in thread "main" java.lang.NoClassDefFoundError:com/sun/tools/javac/Main“提示,这是什么原因呢?
      

  11.   

    我编译了一下。
    编译的时候是没有错误的!!
    你说的那个错误在运行的时候才出现。
    但是这是个Applet,你是不能像普通的类一样运行它的!!
    必须编译后在AppletViewer或浏览器中运行它。
    AppletViewer是jdk自带的测试Applet的工具,你用它试试。
      

  12.   

    而且在d:\下都能正确显示,但进了d:\java这个目录,就出现上面的问题,不知是什么原因。
      

  13.   

    我用意Znet(臧圩人) 的看法,
    你的是个Applet需要在浏览器里执行的
      

  14.   

    这好象不是程序的问题,好象是jsdk的问题,因为javac这个命令在d:\下都能正确显示,但进了d:\java这个目录,就出现上面的问题,我想应该是jsdk的问题,这如何解决呢?