标签: program-entry-point

"错误:在MyClass类中找不到主要方法,请将主方法定义为......"

新Java程序员在尝试运行Java程序时经常会遇到这些消息.


Error: Main method not found in class MyClass, please define the main method as:
   public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application
Run Code Online (Sandbox Code Playgroud)
Error: Main method is not static in class MyClass, please define the main method as:
   public static void main(String[] args)
Run Code Online (Sandbox Code Playgroud)
Error: Main method must return a value of type void in class MyClass, please
define the main method as:
   public static void main(String[] args)
Run Code Online (Sandbox Code Playgroud)
java.lang.NoSuchMethodError: main
Exception in thread "main"
Run Code Online (Sandbox Code Playgroud)

这是什么意思,什么可以导致它,以及应该怎么做才能解决它?

java program-entry-point runtime-error nosuchmethoderror

58
推荐指数
4
解决办法
21万
查看次数

为什么声明main作为数组编译?

在CodeGolf上看到了一段代码,它的目的是作为编译器炸弹,其中main声明为一个巨大的数组.我试过以下(非炸弹)版本:

int main[1] = { 0 };
Run Code Online (Sandbox Code Playgroud)

它似乎在Clang下编译得很好,并且在GCC下只有一个警告:

警告:'main'通常是一个函数[-Wmain]

结果二进制文件当然是垃圾.

但为什么它会编译呢?是否允许C规范?我认为相关的部分说:

5.1.2.2.1程序启动

程序启动时调用的函数名为main.该实现声明此函数没有原型.它应定义为返回类型为int且没有参数[...]或具有两个参数[...]或以某种其他实现定义的方式.

"其他一些实现定义的方式"是否包含全局数组?(在我看来,规范仍然指的是一个函数.)

如果没有,它是编译器扩展吗?或者工具链的一个功能,它可以用于其他目的,他们决定通过前端提供它?

c gcc program-entry-point clang

56
推荐指数
4
解决办法
8999
查看次数

int main()和int main(void)之间的区别?

以下是什么意思:

int main(void) {...} 
Run Code Online (Sandbox Code Playgroud)

VS

int main() {...}
Run Code Online (Sandbox Code Playgroud)

我认为这int main() {...}意味着main不接收任何参数(来自命令行),但是:

int main(int argc, char *argv[])
Run Code Online (Sandbox Code Playgroud)

确实.

但这int main(void) {...} 意味着什么?什么是无效主张?

我看过这里,但这是一个不同的问题.

c program-entry-point void

55
推荐指数
3
解决办法
7万
查看次数

WINMAIN和C++中的main()(扩展)

是的,我看过这篇文章:WinMain,main和Cll中的DllMain之间的区别

我现在知道它WINMAIN用于窗口应用程序和main()控制台.但阅读这篇文章并没有真正告诉我为什么到底有什么区别.

我的意思是将不同的电源功能分离到程序的开始是什么意思?是因为性能问题?或者它是什么?

c++ windows program-entry-point winmain

54
推荐指数
2
解决办法
6万
查看次数

C++ - char**argv与char*argv []

char** argv和之间有什么区别char* argv[]?在int main(int argc, char** argv)int main(int argc, char* argv[])

它们是一样的吗?特别是第一部分没有[].

c++ program-entry-point arguments

52
推荐指数
3
解决办法
4万
查看次数

'String args []'和'public static void main(String [] args)'中的静态的解释

对于初学者,你如何能够很好地解释下面摘录中的含义String args[]和用法static

class FirstApp {
    public static void main(String[] args) {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

java program-entry-point

46
推荐指数
4
解决办法
42万
查看次数

在C++中递归到main()是否合法?

我读到C++标准禁止递归main(),但是g ++编译以下代码而没有抱怨:

int main()
{
    main();
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以澄清这个吗?

c++ recursion standards program-entry-point

45
推荐指数
4
解决办法
3542
查看次数

Ruby中的"主要"是什么?

如果我将此文件作为" ruby x.rb" 运行:

class X
end
x = X.new
Run Code Online (Sandbox Code Playgroud)

什么叫" X.new"?

它是一个对象/进程/等?

ruby program-entry-point

44
推荐指数
2
解决办法
2万
查看次数

在__main__.py中使用模块自己的对象

我正试图从其内部访问模块的数据__main__.py.

结构如下:

mymod/
    __init__.py
    __main__.py
Run Code Online (Sandbox Code Playgroud)

现在,如果我__init__.py像这样公开一个变量:

__all__ = ['foo']
foo = {'bar': 'baz'}
Run Code Online (Sandbox Code Playgroud)

如何访问foo__main__.py

python program-entry-point init

42
推荐指数
1
解决办法
1万
查看次数

无法使用Jar文件查找或加载主类

我正在尝试使用加载jar

@echo off
java -jar Test.jar
pause
Run Code Online (Sandbox Code Playgroud)

随着的表现

Manifest-Version: 1.0
Main-Class: classes.TestClass
Run Code Online (Sandbox Code Playgroud)

在Jar目录中,当我提取它时,我可以清楚地看到classes\TestClass文件.

编辑:classes.TestClass确实有public static void main(String[] args).

包装减速度classes.TestClasspackage classes;

但我仍然收到错误消息

Could not find or load main class classes.TestClass
Run Code Online (Sandbox Code Playgroud)

我经历过这个问题所能找到的一切,但似乎没有任何帮助.

我已经尝试编辑类路径,重做清单,安装新的JRE.

我还应该做什么?

java program-entry-point jar class

41
推荐指数
7
解决办法
16万
查看次数