我们如何让 Java 应用程序永远运行 [关闭]

Posted

技术标签:

【中文标题】我们如何让 Java 应用程序永远运行 [关闭]【英文标题】:How can we keep an java application running forever [closed] 【发布时间】:2017-10-26 23:14:33 【问题描述】:

我想编写一个 java 应用程序,它应该永远运行。 Webservice 是一种方法,但我不想将它作为 Web 服务运行。 我只想在永远运行的应用程序中运行一些线程,我不想像这样处理任何 webRequest。

你能告诉我还有什么其他的方法吗?

【问题讨论】:

运行它,不要停止它。为什么 Java 应用程序不能永远运行? while (true) - 我猜不是你想要的 或者如果你更喜欢 for 循环而不是 while 循环 for( ; ; ) 不清楚你想达到什么,但也许有帮助:docs.oracle.com/javase/7/docs/api/java/util/concurrent/… 【参考方案1】:

您可以让任何应用程序使用线程(最好通过线程池)永远运行,但您应该非常小心 GC。因此,您可能必须密切关注实例管理、定期堆转储和微调应用程序。希望对您有所帮助!

【讨论】:

【参考方案2】:

有一个类的 main 方法如下所示:

final class Forever

    private Forever ()
    

    public static void main (String [] args)
    
        while (true)
        
           try
           
               // don't do anything here
               // especially do NOT connect to any databases
           
           catch (Throwable t)
           

               
        
    

将这个 java 代码放在一个运行 Linux 的太空探测器上,具有无限的能源。确保它远离行星、爆炸的恒星、黑洞等。

注意:不要让人类连接到探头。

这可能无法得到你想要的永远;但是,它可能会弥补到宇宙的尽头。

更新: 到目前为止,我已经在我的开发环境中运行了大约 5 10 分钟,它仍在运行!我可能会尽快将此推送给 QA。

【讨论】:

基本上我想在持久队列上运行几个队列侦听器,并且这些侦听器应该永远运行。但是看到GC等问题,上面的方案似乎不太可行。 你错了。不幸的是,给定足够的时间,但距离宇宙终结还有很长的路要走,根据这篇***文章:en.wikipedia.org/wiki/…,探测器最终将通过量子隧穿和引力子发射到铁 56 原子核中衰变。在将事实发布到公共互联网之前,请先弄清楚事实。

以上是关于我们如何让 Java 应用程序永远运行 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何让 EC2 上的 Node.js 服务器永远运行?

让PHP程序永远在后台运行

如何让 Tomcat 在 443 而不是其默认端口 8080 上运行? [关闭]

如何关闭登录对话框并显示主窗口(PyQt4)[重复]

Linux环境下执行java -jar xxx.jar命令如何让springboot项目在后台运行

您永远不应执行的10个最危险的Linux命令