2014-11-08 53 views
2

由於某些原因,我一直無法弄清楚,我一直在努力的程序現在沒有運行。這是我得到的錯誤消息: 在Java中找不到主類?

我所做的工作和現在的工作時間之間是添加另一個類,但即使在刪除它之後,錯誤信息仍然存在。 Netbeans也一直沒有幫助,代碼中沒有任何標記爲紅色的錯誤。我還是一個初學者到Java,所以我不知道有多少是需要找到錯誤,所以這裏所有的代碼:

public class ChooseYourOwn { 
static class Character { 
    private static int str; 
    public Character() { 
     int str = 0; 
     int spd = 0; 
     int agl = 0; 
     int def = 0; 
     int mag = 0; 
     int wil = 0; 
     int mp = 0; 
     int hp = 0; 
    } 
    private Character(String name) { 
    } 
    } 

/** 
* 
* @param args 
* @return 
*/ 

public static int main(String[] args) { 
    //set up character 
    System.out.println("Choose a class:"); 
    String [] genusOptions; 
    genusOptions = new String[] {"\n1-Warrior\n2-Mage\n3-Thief"}; 
    System.out.println(Arrays.toString(genusOptions)); 
    Scanner input1 = new Scanner(System.in); 
    String genus; 
    genus = input1.nextLine(); 
    System.out.println("Your character's stats are:"); 
    switch (genus) { 
     case "1": 
      { 
       String[] array = new String[] {"\nStrength-15\nSpeed-5\nAgility-5\nDefense-10\nMagicDamage-5\nMagicDefense-0\nMagicPoints-5\nHitPoints-15\n"}; 
       System.out.println(Arrays.toString(array)); 
       int str = 5; 
       int spd = 2; 
       int agl = 2; 
       int def = 5; 
       int mag = 0; 
       int wil = 0; 
       int mp = 0; 
       int hp = 10; 
       break; 
      } 
     case "2": 
      { 
       String[] array = new String[] {"\nStrength-5\nSpeed-5\nAgility-5\nDefense-0\nMagicDamage-15\nMagicDefense-10\nMagicPoints-15\nHitPoints-5\n"}; 
       System.out.println(Arrays.toString(array)); 
       int str = 5; 
       int spd = 5; 
       int agl = 5; 
       int def = 0; 
       int mag = 10; 
       int wil = 10; 
       int mp = 15; 
       int hp = 5; 
       break; 
      } 
     case "3": 
      { 
       String[] array = new String[] {"\nStrength-10\nSpeed-15\nAgility-15\nDefense-10\nMagicDamage-10\nMagicDefense-5\nMagicPoints-10\nHitPoints-10\n"}; 
       System.out.println(Arrays.toString(array)); 
       int str = 10; 
       int spd = 15; 
       int agl = 15; 
       int def = 10; 
       int mag = 10; 
       int wil = 5; 
       int mp = 10; 
       int hp = 10; 
       break; 
      } 
    } 
    String[] array = new String[] {"\n1-Move\n2-Rest\n3-Attack\n4-Run\n5-Activate lever/button/chest\n6-Inventory\n7-Skills"}; 
    System.out.println("Choose a number to continue"); 
    System.out.println(Arrays.toString(array)); 
    Scanner input2; 
    input2 = new Scanner(System.in); 
    String action; 
    action = input2.nextLine(); 
    switch (action) { 
     case "1": 
      { 
       System.out.println(""); 
       //not done yet 
       break; 
      } 
     case "2": 
      { 
       System.out.println(""); 
       //Rest, restores some health 
       break; 
      } 
     case "3": 
      { 
       System.out.println(""); 
       int max = 100; 
       int min = 0; 
       Random rand = new Random(); 
       int randomNum = rand.nextInt((max - min) + 1) + min; 
       int damage = 0; 
       if (10 > randomNum) { 
        damage = (Character.str/100) * 10; 
       } else if (20 > randomNum) { 
        damage = (Character.str/100) * 20; 
       } else if (30 > randomNum) { 
        damage = (Character.str/100) * 30; 
       } else if (40 > randomNum) { 
        damage = (Character.str/100) * 40; 
       } else if (50 > randomNum) { 
        damage = (Character.str/100) * 50; 
       } else if (60 > randomNum) { 
        damage = (Character.str/100) * 60; 
       } else if (70 > randomNum) { 
        damage = (Character.str/100) * 70; 
       } else if (80 > randomNum) { 
        damage = (Character.str/100) * 80; 
       } else if (90 > randomNum) { 
        damage = (Character.str/100) * 90; 
       } else if (100 > randomNum) { 
        damage = Character.str; 
       } 
       System.out.println(damage); 
       break; 
       } 
     case "4": 
      { 
       System.out.println(""); 
       //not done yet 
       break; 
      } 
     case "5": 
      { 
       System.out.println(""); 
       //not done yet 
       break; 
      } 
     case "6": 
      { 
       System.out.println(""); 
       //not done yet 
       break; 
      } 
     case "7": 
      { 
       System.out.println(""); 
       //not done yet 
      }  
    } 
    return (0); 
} 
} 

已經有以前在這裏問類似的問題,但沒有他們幫助和其他人很不清楚。一個好的和一致的答案將不勝感激,謝謝。

回答

3

在Java中發現的主要方法簽名public static void main(String[] args),但在你的代碼中使用public static int main(String[] args)

+0

工作,謝謝! – Emily 2014-11-08 03:01:02

2

您不能更改main的返回類型。這

public static int main(String[] args) 

必須是一個(每本值得Wikipedia article on Entry point

public static void main(String[] args) 
public static void main(String... args) 
public static void main(String args[]) 

所有這些都是void,如果您需要設置一個UNIX風格返回類型,你可以使用System.exit(int);引述Javadoc

終止當前運行的Java虛擬機。這個論點充當了一個狀態代碼;按照慣例,非零狀態碼錶示異常終止。