首页 文章

简单Java文件没有这样的方法错误(返回类型int)[重复]

提问于
浏览
1

这个问题在这里已有答案:

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

我必须为此应用程序返回一个int,我不能使用void类型 .

-java HelloWorld

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

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

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

我已经尝试过更改,比如倒数第二个之后的冒号,更改为int main,public int main,static int main,用大写的第一个字母写main和string,似乎没有解决任何问题 . 我正在使用String [] args,因为我将在最终应用程序中获取参数 .

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

5 回答

  • 0

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

  • 0

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

    要在Java中实现类似的功能,您需要使用System.exit来允许返回值 . 就像是:

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

    大家都知道,大多数标准都要求你坚持认为零以外的任何东西都是错误的 .

  • 3

    在Java语言中,当您使用Java解释器执行类时,运行时系统首先调用类的main()方法 . main()方法的签名不能更改,为了执行必须 publicstatic 不返回任何内容并接受String arrys String[]

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

    希望能帮助到你,

    何塞路易斯

  • 0

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

    public static void main(String[] args)
    

    要向调用进程返回非零值,可以使用System.exit(int)之类的

    System.exit(4);
    

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

  • 0

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

相关问题