在eclipse中运行错误,找不到或无法加载主类,环境变量没有错

这是程序,就定义一个三角形类
import java.awt.Point;import java.lang.Math;class Triangle { private Point point1; private Point point2; private Point point3; public Triangle(Point a,Point b,Point c){ point1=a; point2=b; point3=c; } public double area(){ double a,b,c; a=point1.distance(point2); b=point1.distance(point3); c=point3.distance(point3); double s=(a+b+c)/2; return (Math.sqrt(s*(s-a)*(s-b)*(s-c))); }
}public class TestTriangle { public static void main (String[] args) { Point a=new Point(3,5); Point b=new Point(10,8); Point c=new Point(20,36); Triangle t=new Triangle(a,b,c); System.out.println("the area of the triangle is"+t.area()); double s=(2.5+3.5+4)/2; double area=Math.sqrt(s*(s-2.5)*(s-3.5)*(s-4)); System.out.println("the area of the given triangle(3.5,2.5,5) is"+area); }}
其他程序运行的时候都没有错,就这个出错了,改了半天也不对
这是环境变量:
classpath: .;C:\Program Files(x86)\Java\jdk1.7.0\lib;
JAVA_HOME:C:\Program Files (x86)\Java\jdk1.7.0
Path:C:\Program Files(x86)\Java\jdk1.7.0\bin;%java_home%\jre\bin;
现在程序能运行了,但是结果有问题了

运行到 Triangle t=new Triangle(a,b,c);变成这样了

希望各位大神看看,本人刚接触java菜鸟一个,一个小程序都3天没对了

第1个回答  2012-09-03
你可以看看classpath,path,java_home 到底是干啥的,其实你只需要配置一个path,就够了,
你的path中的 C:\Program Files(x86)\Java\jdk1.7.0\bin;和 %java_home%\jre\bin; 重复了,
建议最好 把 %java_home%\jre\bin; 去掉;
另外还是给你说说 path 是 你编写的程序运行时,电脑回去你的 path变量找到 你的jdk所在的位置
classPath 是 你编写完程序,编译的时候,电脑找你编写的程序所在的位置

另外 你的程序 我试过 可以运行,如果你觉得你的结果不对,那可能就是你的 业务逻辑出现问题
第2个回答  2012-08-30
你运行的都不是这个类TestTriangle

右键选中这个文件, run --> run as application追问

运行成功了,可是结果有问题了

运行到 Triangle t=new Triangle(a,b,c);
就变成这样了

刚接触java,菜鸟一个,麻烦帮忙看看吧,谢谢

追答

那个估计都不是你这个程序的错误吧

你的程序已经完整运行了

追问

那为什么第一行输出没有数字呢,nan不是代表有错误了么

本回答被提问者和网友采纳
第3个回答  2012-09-07
c=point3.distance(point3); 不知道这是不是你的原意,这个为0,导致计算s-c为负数,计算
Math.sqrt(s*(s-a)*(s-b)*(s-c))的时候出错。
第4个回答  2012-08-30
你这.java的文件名是什么?追问

TestTriangle.java

追答

Eclipse上可不是这么说啊,那行小字是Triangle.TestTriangle,主类是Triangle。我估计是中间你曾改动过文件名等,把Eclipse给搞糊涂了。用Project/clean...清空了重新编译一遍吧。

第5个回答  2012-08-31
要将Triangle类声明为private权限才可以追问

默认权限不可以么?老师上课的课件都是默认的

追答

你可以上机试一试。

相似回答