如何让java程序全天候运行?

use*_*323 5 java jvm amazon-web-services

我制作了一个Java程序并将其作为一个jar文件.我想让它在我的AWS上全天候运行.我在注销后使用一个名为screen的应用程序来保持运行.我用这个命令:

screen java -jar my_app.jar
Run Code Online (Sandbox Code Playgroud)

但它不能一直运行.它运行一两天后就会停止.我保留了一个日志,我没有发现任何异常终止它.我想知道JVM是否会因为任何原因(例如高内存使用率)而终止我的应用程序?JVM是否保留日志?我在哪里可以找到JVM的日志?我必须让我的应用程序成为deamon吗?如果必须,怎么样?

Rya*_*art 8

不,保持Java应用程序运行没有什么特别之处.只需要至少有一个非守护程序线程仍处于活动状态.例如,这是一个永远运行的完整程序:

public class Forever {
    public static void main(String[] args) throws InterruptedException {
        while (true) { Thread.sleep(1000); }
    }
}
Run Code Online (Sandbox Code Playgroud)

如果你的应用程序正在死亡,那是因为某处出现了一些错误.确保检查正在写入的任何日志以及进程的stdout和stderr以查找原因.