线程主错误中出现异常



可能重复:
';java.lang.NoSuchMethodError:线程“main"';

我希望这只是一个简单的错误,我已经查找了许多其他人收到相同错误消息的瞬间,但他们的解决方案似乎都不适用于我。我只是想知道你们是否可以帮助我在代码中找到错误。我甚至不确定它是否正常工作,因为我无法让它运行,所以我认为这可能是一个逻辑错误。

当我尝试运行以下感冒时,我遇到了致命的异常错误。程序将退出。

Eclipse还为我提供了:java.lang.NoSuchMethodError:main线程"主"出现异常

非常感谢您提供的任何帮助!

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class JoPuzzle
{
public static Integer main(String[] args)
{
    Scanner input = new Scanner(System.in);
    System.out.println("Please enter the number of soliders");
    int soldiers = input.nextInt();
    System.out.println("Please enter the how many soldiers are skipped before the next death");
    int count = input.nextInt();
     List<Integer> soldiersList = new ArrayList<Integer>(soldiers);
      for (int i = 1; i <= count; i++) {
    soldiersList.add(i);
  }

  int currentIndex = 0;
  while(soldiersList.size() > 1) {
      currentIndex = (currentIndex - 1 + count) % soldiersList.size();
      soldiersList.remove(currentIndex);
  }
  return soldiersList.get(0);
  }   //end main
}//end class

我们知道,要执行任何java程序,我们都应该有一个main函数。因为这是JVM可自行调用的。函数的签名必须是.

public static void main(String[] args){
 }

但在你的代码中似乎是这样的。。。

public static Integer main(String[] args){
 }

因此它被视为一个不同的函数,因此更改您的主返回类型。。

main方法的签名是
public static void main(String[]args)。

当您运行程序时,JVM将查找要执行的方法。您需要在代码中使用此方法

您的程序不包含主方法,请将其更改为

public static void main(String[] args)

如果要返回Integer对象,请定义一个自定义方法,并在主方法内部调用该方法,然后处理返回的值。

Java main()函数没有返回语句。这条线路
public static Integer main(String[] args)

应该是

public static void main(String [] args)

此外,由于它没有返回值,您应该删除return语句。

Java的主方法应该具有以下签名。

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

试着运行这段代码并判断它是否有效。

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class JoPuzzle
{
public static void main(String[] args)
{
    Scanner input = new Scanner(System.in);
    System.out.println("Please enter the number of soliders");
    int soldiers = input.nextInt();
    System.out.println("Please enter the how many soldiers are skipped before the next death");
    int count = input.nextInt();
     List<Integer> soldiersList = new ArrayList<Integer>(soldiers);
      for (int i = 1; i <= count; i++) {
    soldiersList.add(i);
  }

  int currentIndex = 0;
  while(soldiersList.size() > 1) {
      currentIndex = (currentIndex - 1 + count) % soldiersList.size();
      soldiersList.remove(currentIndex);
  }
 // return soldiersList.get(0);
  System.out.println(soldiersList.get(0));
  }   //end main
}//end class

相关内容

  • 没有找到相关文章

最新更新