eclipse找不到或无法加载主类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了eclipse找不到或无法加载主类相关的知识,希望对你有一定的参考价值。

我的环境设置对的,用dos也没问题,可是用eclipse就会 错误: 找不到或无法加载主类 5

代码没错的情况下,你看看你有没有更改或删除你的eclipse 的工作空间,你再看看你运行这个类所在工程的其他类的时候是不是也是出现这种情况,我也有出现这样的问题过,但我记得我好像删除了原来的工作空间,结果重建了一下就好了!重建工作空间之前我先把出现问题的类所在的工程全部删了,重建了工程。 参考技术A

可能是main函数写的不完整

class Customer implements Runnable 
    private int money=150;
    int i=1;
    public void run() 
        while (true) 
            savemoney();
        
    
 
    private synchronized void savemoney() 
        for (int i=1; i<6; i++)    //分号去掉
        
            try 
                Thread.sleep(10);
             catch (InterruptedException e) 
                e.printStackTrace();
            
            System.out.println(Thread.currentThread().getName()+"存入:"+i*money);
        
    
    
 
public class Test05 
    public static void main(String[] args)     //加上static
        // TODO Auto-generated method stub
        Customer c1=new Customer();
        Customer c2=new Customer();
        new Thread(c1,"顾客A").start();
        new Thread(c2,"顾客B").start();
    

参考技术B 你这支程式写的没问题
不过你如果用eclipse跑的话
你的args的这个数组会没值吧
如果可以的话
你把其他都屏蔽掉
然后直接先 System.out.println("main");
如果还报错的话 估计是你的eclipse环境问题
参考技术C eclipse导入了myeclipse建立的工程所以一些配置信息无法正常匹配加载,这种情况要在eclipse里新建工程,让后把源文件复制进去才行。 参考技术D 我刚才试过,没有问题。你查一下你CLASS_PATH中有没有这一点 .
这一点意思是从当前执行目录进行查找追问

就是用eclipse时候这样,环境都是对的,javac都行啊

追答

这样可能是你的eclipse配置问题,查一下eclipse执行时的配置

本回答被提问者采纳

在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天没对了

参考技术A 你可以看看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 是 你编写完程序,编译的时候,电脑找你编写的程序所在的位置

另外 你的程序 我试过 可以运行,如果你觉得你的结果不对,那可能就是你的 业务逻辑出现问题
参考技术B 你运行的都不是这个类TestTriangle

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

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

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

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

追答

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

你的程序已经完整运行了

追问

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

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

TestTriangle.java

追答

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

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

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

追答

你可以上机试一试。

以上是关于eclipse找不到或无法加载主类的主要内容,如果未能解决你的问题,请参考以下文章

如何解决Eclipse下“找不到或无法加载主类”的错误

eclipse 错误;找不到或无法加载主类

如何解决Eclipse下“找不到或无法加载主类”的错误?

eclipse找不到或无法加载主类

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

运行java文件显示找不到或无法加载主类怎么解决?