“未找到主要方法”错误 - 此代码中缺少什么?

时间:2014-02-06 19:55:33

标签: java methods main entry-point

我只是重新阅读我的讲座脚本并在那里试用代码。问题是教授只给了我们代码片段,我真的坚持这个。我在Eclipse中不断收到此错误:

  

没有主要方法

即使我将public static void main(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"); 
    }
}

3 个答案:

答案 0 :(得分:6)

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

public static void main(String[] args)

您必须实施此方法。它将运行您的其余应用程序。

答案 1 :(得分:0)

如果你得到的错误就像没有主要方法那么意味着你必须把你的主要方法放在错误的地方。确保您的大括号已关闭并遵循此结构

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

答案 2 :(得分:-1)

AlexR所说的是正确的。每个程序都需要一个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(double x)

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"); 
}

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