2

是否可以将java程序的入口点main(默认)更改为其他?

如果我写代码

public class TestWithoutMain {
    static {
        System.out.println("hello bristy!!!");
    }
}

我无法在 Eclipse 中运行代码。如果我在上面的代码中添加 main 方法

public class TestWithoutMain {
    static {
        System.out.println("hello bristy!!!");
    }
    public static void main(String[] args) {

    }
}

它正在打印hello bristy !!!.

4

2 回答 2

2

基本概念是首先搜索主类,然后仅通过 main 执行。所以第一个答案是否定的。您无法更改入口点。

现在在您的代码中,您有一个静态 System.out.prinln 块。在java中,静态内容是在第一次加载类时加载的,它们在内存中只有一个副本。所以静态块会在找到主块后执行。只需尝试删除此主块,您就会自己看到不同之处

于 2013-09-03T05:12:46.937 回答
2

诸如将业务代码放入静态初始化程序(main留空)之类的技巧是可能的。但是静态初始化器的主要目的是执行一些初始化,而不是运行业务代码。

您可以将类似的东西System.out.println("TestWithoutMain class loaded");用于记录目的,但这不应该是您程序的主要目标。

Java 不会阻止您编写糟糕、不可读和不可维护的代码。并从创建无意义的程序。其他编程语言也不行。

常见的编程实践不鼓励您将业务代码放在静态初始化程序中绕过main.

于 2013-09-03T05:13:28.187 回答