【问题标题】:No Such Method Error for simple Java file (return type int) [duplicate]简单Java文件没有这样的方法错误(返回类型int)[重复]
【发布时间】:2015-07-14 15:12:07
【问题描述】:

我有以下短程序,编译良好(在 Linux 机器上编写和编译)。如果我使用 public static void main(String[] args) 并摆脱 return 4;声明它编译并运行良好。使用返回类型,我收到以下错误(在运行时而不是在构建时):

为了这个应用程序的目的,我必须返回一个 int,我不能使用 void 类型。

-java HelloWorld

线程“主线程”中的异常 java.lang.NoSuchMethodError: main

文件名为HelloWorld.java(构建后的HelloWorld.class)。

是什么导致了这个问题?谢谢!

我尝试了一些更改,例如倒数第二个 } 之后的冒号,更改为 int main、public int main、static int main、使用大写首字母编写 main 和 string,似乎没有任何问题可以解决。我正在使用 String[] 参数,因为我将在最终应用程序中获取参数。

public class HelloWorld 
{
public static int main(String[] args) 
{
System.out.println("Hello, World");
return 4;
}
}

【问题讨论】:

  • 我必须为这个应用程序的目的以及如何使用它返回一个值。需要返回一个int。
  • 试试这个http://www.tutorialspoint.com/java/java_basic_syntax.htm
  • Java main方法必须是public static void main(String[] args),Java的main方法不返回值(如C),你可以使用System.exit(int)设置退出值

标签: java int return main nosuchmethoderror


【解决方案1】:

Java 不是 C,入口点必须有 void 返回类型。

public static void main(String[] args) 

要向调用进程返回一个非零值,可以使用System.exit(int)like

System.exit(4);

请注意(根据 Javadoc)参数用作状态代码;按照惯例,非零状态码表示异常终止。

【讨论】:

    【解决方案2】:

    尝试使用 public static void main,而不是返回值

    【讨论】:

    • 他的版本可以正常工作(它会编译和运行)。这不是这里的问题。
    【解决方案3】:

    在 Java 语言中,当您使用 Java 解释器执行一个类时,运行时系统会通过调用该类的 main() 方法来启动。 main() 方法的签名不能更改,为了被执行必须是publicstatic 不返回任何东西并接受一个字符串数组String[]

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

    希望对你有帮助,

    何塞·路易斯

    【讨论】:

      【解决方案4】:

      main() 由运行时在类级别调用,因此它必须是publicstatic。此外,在 C++ 中,main() 的返回值通常用于指示程序的退出状态。在 Java 中,还有其他方法可以做到这一点,main() 不需要返回值。因此它也需要是void

      【讨论】:

        【解决方案5】:

        通常在 C 和 C++ 等语言中,main 被允许返回 int 以指示退出代码,例如0 表示成功退出,任何其他数字表示错误。这样外部程序就可以解释运行的结果。

        要在 Java 中实现类似的功能,您需要使用 System.exit 允许返回值。比如:

        public static void main(String[] args) { int toReturn = 1; System.exit(toReturn); }

        您知道,大多数标准都要求您坚持这样的想法,即除零以外的任何东西都是错误的。

        【讨论】:

          猜你喜欢
          • 2018-09-26
          • 1970-01-01
          • 2018-03-08
          • 2015-05-16
          • 1970-01-01
          • 1970-01-01
          • 2014-02-13
          • 2020-01-16
          • 1970-01-01
          相关资源
          最近更新 更多