是否可以在没有java中的主要和静态块的控制台上打印消息?

shr*_*e18 10 java

在一次采访中我问过这个问题:如果不使用static和main,我们怎样才能在控制台上打印消息?有可能吗?

Arn*_*aud 26

您可以定义一个打印消息的自定义类加载器:

public class MyClassLoader extends ClassLoader {
    public MyClassLoader(ClassLoader other) {
         super(other);
         System.out.println("Hi there");
         System.exit(0);
    }
}
Run Code Online (Sandbox Code Playgroud)

然后运行java命令:

java -Djava.system.class.loader=MyClassLoader

(不需要添加类作为参数)

  • `-Djava.system.class.loader`用于定义JVM类加载器,即负责加载类的对象.在这里,我们提供自己的类加载器,我们"破解"它,以便它显示一些文本,然后退出. (2认同)