我有一个 Java 应用程序,它创建一个新线程来完成一些工作。我可以毫无问题地启动新线程。
当“主”程序终止时,我希望我创建的线程继续运行——它的确如此……
但问题是,当我从 Eclipse 或 Windows 下的 Ant 运行主应用程序时,控制不会返回,除非后台进程被终止。
如果我在 ant 中 fork 主 java 进程,我希望在主线程完成其工作后将控制权返回给 ant...但实际上,ant 会继续等待,直到主进程和创建的线程都终止了。
如何在后台启动线程,以便在“主”应用程序完成后控制权返回到 ant? (顺便说一下,当我在 Linux 下运行相同的应用程序时,我可以毫无问题地执行此操作)。
最佳答案
最好的办法是为此启动一个完全独立的程序,该程序独立于启动程序。你可以用 Runtime#exec()
做到这一点, ProcessBuilder
或 Desktop#open()
.
关于java - 如何在 Java 中创建允许主应用程序完全退出的后台线程?这适用于 Linux,但不适用于 Windows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2641645/