簡體   English   中英

錯誤:在Java類中找不到主要方法

[英]Error : Main method not found in java class

我是Java概念的新手。 在准備我的第一個帶有對象的類的程序時,我遇到了一個問題。 這是代碼和錯誤。.請解決..程序:

class Fact
{
    private int i;
    private int n;
    private int fact;

    public Fact()
        { fact=1;
          i=1;
        }
    public Fact( int x)
        { n=x; }
    public void getAnswer()
        {
            while(i<=n)
            {fact=fact*i;
                i++;}
            System.out.println(fact);
        }
}
class FactMain
{
    public static void main(String dt[])
    {
    Fact obj= new Fact(6);
    obj.getAnswer();
    }
}

錯誤:

Main method not found in class Fact, please define the main method as:
public static void main(String[] args)

只需將您的Parameterized構造函數更改為此

public Fact(int x) {
    fact = 1;
    i = 1;
    n = x;
}

因為您在默認構造函數中聲明了階乘 ,但是您沒有調用它。 因此,將0分配給階乘,然后嘗試將其乘以。 這沒有任何意義。

您已將文件另存為Fact.java 因此,java嘗試在Fact中查找主類。 將文件另存為FactMain.java 。應該可以。

您的主要方法在FactMain.java中 ,但是您正在將文件另存Fact.java

您將需要將文件另存為FactMain.java,因為JVM希望main與.java文件的名稱位於同一類中。

將類文件名Fact.java重命名為FactMain.java

private int fact;

public Fact()
    { fact=1;
      i=1;
    }
public Fact( int x)
    { n=x; }

注意,默認構造函數設置fact但構造函數Fact( int x)設置n 因此, fact0 因此您的輸出也是0

解:

public Fact(int x) {
    fact = 1;
    i = 1;
    n = x;
}

要么,

public Fact(int x) {
    this(); // default constructor
    n = x;
}

這是完整的解決方案:

創建一個名為FactMain.java class文件,然后粘貼以下代碼:

class Fact {
    private int i;
    private int n;
    private int fact;

    public Fact() {
        fact = 1;
        i = 1;
    }

    public Fact(int x) {
        this();
        n = x;
    }

    public void getAnswer() {
        while (i <= n) {
            fact = fact * i;
            i++;
        }
        System.out.println(fact);
    }
}

class FactMain {
    public static void main(String[] dt) {
        Fact obj = new Fact(6);
        obj.getAnswer();
    }
}

您已經在FactMain中定義了主類,並且很有可能在運行時編譯后嘗試執行

Java事實

因此,由於在Fact類中沒有main方法,因此出現了錯誤。 編譯.java文件后,您將獲得兩個類文件Fact.class和FactMain.class,因此應執行

Java FactMain

FactMain類移動到FactMain.java

FactMain.java

public class FactMain
{
    public static void main(String dt[])
    {
        Fact obj= new Fact(6);
        obj.getAnswer();
    }
}

允許Fact類保留在Fact.java文件中

Fact.java

public class Fact {

    private int i;
    private int n;
    private int fact;

    public Fact() {
        fact = 1;
        i = 1;
    }

    public Fact(int x) {
        this();
        n = x;
    }

    public void getAnswer() {
        while (i <= n) {
            fact = fact * i;
            i++;
        }
        System.out.println(fact);
    }
}

編譯類...

javac {package path}\FactMain.java

跑主班

java {package path}.FactMain

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM