我不想更改签名的public static void
...String[] args
部分,但是否可以“重命名”此功能(例如,只是为了好玩)?
所以执行的入口点将是一个具有另一个名称的函数。
将其重命名为,例如boot
(如果不是历史性的,在我的特定情况下更好地反映它的实际用途)。
有关的
我有兴趣做一些不同的事情,但这些问题仍然很有趣:
我不想更改签名的public static void
...String[] args
部分,但是否可以“重命名”此功能(例如,只是为了好玩)?
所以执行的入口点将是一个具有另一个名称的函数。
将其重命名为,例如boot
(如果不是历史性的,在我的特定情况下更好地反映它的实际用途)。
有关的
我有兴趣做一些不同的事情,但这些问题仍然很有趣:
简单回答 不,原因,规范就是这样,JVM
只会寻找main
而不是任何自定义名称作为起点。它必须被称为 main 并带有确切的签名public static void main(String[] args)
从逻辑上讲,除非命令具有传递 start 方法的选项,否则如何JVM
知道main
它必须寻找boot
或其他东西而不是方法是有道理的。java
但这是没有充分理由的要求太多。
其次,由于它的标准化,它也有助于开发人员社区,无论谁查看代码都知道如何运行给定的Java
独立程序,或者说如果你有一个项目,你的第一点总是寻找主要方法,然后从那里你继续前行。
不可以。根据 Java 语言规范,您不能这样做。但是如果你愿意,因为Java是一个开源项目,所以下载Java语言的完整源代码并进行相应的更改(我的意思是更改JVM本身的源代码)。这是您可以做到这一点的唯一方法。
所以现在你可以理解了,为什么我说这是不可能的。
在开始时,JVM 正在从public static void main
以字符串数组作为参数的方法中查找。所以你唯一能做的就是重命名参数args
。如果你想要像 boot 这样的方法,没有人会阻止你做这样的事情(我个人不推荐这种“模式”)
static void boot(String[] arguments){
//your logic
}
public static void main(String[] args) {
boot(args);
}
您的应用程序从 开始运行public static void main(String[] args)
。这就像 JVM 启动程序的地方。如果您更改它,JVM 会随意不启动您的应用程序。
如果您想将其boot()
作为应用程序的起点,请在main()
.
简单的答案是NO
。当您开始执行程序时,它会查找 public static void main(String[] args)
接受字符串数组参数的程序。从这个入口点开始主线程。
是的,如果我们可以改变JVM的配置,让它寻找另一个名字的方法而不是main方法,我们就可以改变main方法的名称。