Java &引用;找不到主方法“;错误-此代码中缺少什么?

Java &引用;找不到主方法“;错误-此代码中缺少什么?,java,methods,main,entry-point,Java,Methods,Main,Entry Point,我只是在重读我的讲稿并在那里尝试代码。问题是,教授只给了我们一些代码片段,我真的很坚持这一点。我在Eclipse中经常遇到这样的错误: 无主方法 即使我将publicstaticvoidmain(String[]args)放入代码中,仍然会出现错误。我应该在里面换什么 这个程序的主要思想是计算平方或平方根 public class MeineKlasse { private String job; private String getJob() { retur

我只是在重读我的讲稿并在那里尝试代码。问题是,教授只给了我们一些代码片段,我真的很坚持这一点。我在Eclipse中经常遇到这样的错误:

无主方法

即使我将
publicstaticvoidmain(String[]args)
放入代码中,仍然会出现错误。我应该在里面换什么

这个程序的主要思想是计算平方或平方根

public class MeineKlasse {

    private String job;

    private String getJob() {
        return job;
    }

    public void setJob(String job) {
        this.job = job;
        System.out.println(job);
    }

    public double myMethode(double x) throws Exception {
        if (job.equals("quadrat")) 
            return x * x;
        if (job.equals("wurzel")) 
            return Math.sqrt(x);
        System.out.println(myMethode(x) + "=");
        throw new Exception("Fehler:Aufgabe nicht korrekt definiert"); 
    }
}

每个程序都需要入口点。任何java程序的入口点都是

publicstaticvoidmain(字符串[]args)


你必须实现这个方法。它将运行应用程序的其余部分

如果出现错误,如无主方法,则意味着您必须将主方法放在错误的位置。还要确保你的花括号是闭合的,并遵循这个结构

public static MeineKlasse {
    public static void main(String[] args) {
         //your code
         //...
         //...
         //...
    }
}

亚历克斯说的是对的。每个程序都需要一个main方法,这就是运行程序的方法

您可以通过以下方式进行修复:

public class MeineKlasse {

    private String job;

    public static void main(String[] args) { //main method
        MeineKlasse meineKlasse = new MeineKlasse();
        meineKlasse.setJob("quadrat");
        System.out.println(meineKlasse.myMethode(3.6));
    } //end main method

    private String getJob() {
        return job;
    }
    .
    .
    .
}
您遇到的另一个问题是
myMethode(双x)


在第6行,该方法调用自身。当它调用自身时,它会重复该方法,包括调用自身。因为它只是再次调用自己,它将遍历代码直到调用自己,等等。这将导致
StackOverflowException
,因为否则该方法将永远重复自身。要解决此问题,您可以删除该行,因为程序已经在main方法中打印结果。

main
方法在哪里?您缺少main方法。这将导致编译器错误。
getJob
不是静态的,所以在main中调用它之前,您不需要创建一个实例吗?
public double myMethode(double x) throws Exception {
    if (job.equals("quadrat")) 
        return x * x;
    if (job.equals("wurzel")) 
        return Math.sqrt(x);
    System.out.println(myMethode(x) + "="); //this line
    throw new Exception("Fehler:Aufgabe nicht korrekt definiert"); 
}