2014-11-08 66 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虚拟机。这个论点充当了一个状态代码;按照惯例,非零状态码表示异常终止。