我用的是JDK1.5;
首先,我在e:\javapro\rect\下写了一个源程序,如下:
package javapro.rect;
public class Trangle
{
  public double sizeA,sizeB,sizeC;
  public boolean boo;
  public Trangle(double x,double y,double z)
  {
    sizeA=x;
    sizeB=y;
    sizeC=z;
    if(x+y>z&&x+z>y&&z+y>x)
    {
      System.out.println("这是一个三角形");
      boo=true;
    }
    else
    {
      System.out.println("这不是一个三角形");
      boo=false;
    }
  }
  public void 计算面积()
  {
   if(boo)
   {
     double gao=(sizeA+sizeB+sizeC)/2.0;
     double area=Math.sqrt(gao*(gao-sizeA)*(gao-sizeB)*(gao-sizeC));
     System.out.println("面积是:"+area);
   }
   else
   {
     System.out.println("这不是一个三角形,不能计算面积");
   }
  }
  public void 修改三边(double a,double b,double c)
  {
    sizeA=a;
    sizeB=b;
    sizeC=c;
    if(a+b>c&&a+c>b&&b+c>a)
    {
      boo=true;
    }
    else
    {
      boo=false;
    }
  }
}然后在dos下编译:javac javapro\rect\Trangle.java 编译成功!接着,我在e:\javapro\mathrect\下又写了一个源程序,引入该包,代码如下:
import javapro.rect.*;
public class Example8
{
  public static void main(String args[])
  {
    Trangle trangle;
    trangle=new Trangle(12,3,1);
    trangle.计算面积();
    trangle.修改三边(3,4,5);
    trangle.计算面积();
  }
}我在d:\javapro\mathrect下编译javac Example8.java继续通过,环境变量也设置了,可是我接着用java命令:java Example8 运行该程序的时候却出现了:Exception in thread "main" java.lang.NoClassDefFoundError: javapro/rect/Trangle at Example8.main(Example8.java:7)
的错误,请问错在哪,解释详细点最好,我很笨的,谢谢!!!

解决方案 »

  1.   

    你找到javapro.rect,看看里面是不是有Trangle.class,出错的原因是找不到这个class
      

  2.   

    你的Example.java要放到e盘根目录
      

  3.   

    且不要把Trangle.java文件放到Example8.java的同目录
      

  4.   

    trangle.计算面积();
        trangle.修改三边(3,4,5);
        trangle.计算面积(); 怎么方法名是中文的?
      

  5.   

    你编译好的Trangle.CLASS的路径为e:\javapro\rect\
    但是你的主程序Example8.CLASS的路径为e:\javapro\mathrect\
    所以你在Example8里面初始化Trangle类是不行的,因为根本就找不到,你把Trangle.CLASS复制到e:\javapro\mathrect\下应该就OK了还有huangpeicheng()方法名是可以用中文的,JAVA时基于UNICODE编码的语言