代码之家  ›  专栏  ›  技术社区  ›  Panakotta00

带有(C++)子进程/线程或类似程序的Java进程

  •  0
  • Panakotta00  · 技术社区  · 6 年前

    我今天的问题是: 我需要从Java启动一个程序(这是一个C++程序)。当Java程序停止时,C++程序也需要停止,反之亦然。

    我的想法: 我需要在新线程中运行程序。当线程停止时,我可以退出java程序。如果Java程序停止,线程将被终止。

    我需要在Java进程的新子进程中运行该程序。并在Java进程中接收信号,以检查子进程是否死亡。

    有人知道我怎么会有这种行为吗?

    1 回复  |  直到 6 年前
        1
  •  3
  •   Victor    6 年前

    您可以在主线程中添加一个关闭挂钩,在这个挂钩中,您可以终止应用程序,或发送退出信号。

    Runtime.getRuntime().addShutdownHook(new Thread() {
        public void run() {
            // kill the application here!!!
            killCProgram();
        }
    });
    

    在上面的代码中,java应用程序将等待 killCProgram

    事实上,如果是两个过程,它们是独立的。