Java - Main 函数启动不退出的方法

Posted 放羊的牧码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java - Main 函数启动不退出的方法相关的知识,希望对你有一定的参考价值。

背景

我在准备使用 JVM 的命令时候观察程序的动态,但是发现 Main 函数启动就退出了,所以也没办法直接观察,于是想到了如何让 Main 函数启动一直不退出,这样就可以该干啥就干啥啦~

方案

1、System.in.read()

  • 简单粗暴(推荐)
public static void main(String[] args) throws IOException 
    System.out.println(1);
    System.in.read();
    System.out.println(2);

2、Object.wait()

  • 这个还需要 synchronized 配合使用,繁琐
public static void main(String[] args) throws InterruptedException 
    System.out.println(1);
    Object o = new Object();
    synchronized (o) 
        o.wait();
    
    System.out.println(2);

3、Thread.sleep(9999999)

  • 让线程睡觉,睡久点,这个也还行吧,比第二种简单点,就是有时间限制,当然有些场景还真需要这种来控制动态
public static void main(String[] args) throws InterruptedException 
    System.out.println(1);
    Thread.sleep(9999999);
    System.out.println(2);

以上是关于Java - Main 函数启动不退出的方法的主要内容,如果未能解决你的问题,请参考以下文章

从java main方法说开去(转)

JVM生命周期

java无法启动main函数

java中哪些内容应该放在main函数中?

Java核心技术 卷Ⅰ 基础知识

Java 中通知线程退出的理解