Java初学者关于主方法中String [] args的问题

Ser*_*ity 4 java program-entry-point

所以我只是尝试String[]main方法中排除args

它汇编好了!

但JVM正在显示异常

为什么String[]每次都要包含args 时它会编译?

这里发生了什么 ?为什么不显示编译错误?

打字这让我觉得可能是编译器没有把它看成是main方法..是这样的吗?

如果是这样的话......为什么不呢?我的意思是不应该只有一个主要的方法必须有String[]args作为参数?

tan*_*ens 6

JVM正在寻找一种非常特殊的主要方法来运行.只有签名

public static void main( String[] args )
Run Code Online (Sandbox Code Playgroud)

找到了.所有其他名称方法main都只是"普通"方法.


Mic*_*rdt 6

打字这让我觉得可能是编译器没有把它看成是主要方法..是这样的吗?

正确.没有编译错误,因为您完全可以自由地命名各种方法main.但是当你启动JVM并给它一个"主类"时,它会static public void main(String[])在该类中寻找一个方法,如果它没有找到这样的方法,它会以异常中止.

这允许你在你的程序中有多个主要方法,并且如果你考虑它是唯一有意义的:应用程序可以由来自不同来源的不同来源的不同来源的类和JAR文件组成,所以在许多情况下,你从一开始就不能真正拥有一个指定的"主类".