在后端运行java程序

在后端运行java程序,java,linux,background,nohup,Java,Linux,Background,Nohup,大家好,我想运行一个java应用程序作为后端进程。这就像tomcat服务器。为此,我开发了一个应用程序。并将一个类作为主类,并从一个脚本文件调用。即(startup.sh)在startup.sh文件中,我调用了一个类。那就是MainMethodClass。在main methodClass中,我编写了我的业务逻辑。当我在linux服务器上运行这个应用程序时,从使用putty一直运行到putty窗口未关闭。putty窗口关闭后,它也会停止。但即使我也关闭了,我也需要运行这个应用程序。我如何实现这个

大家好,我想运行一个java应用程序作为后端进程。这就像tomcat服务器。为此,我开发了一个应用程序。并将一个类作为主类,并从一个脚本文件调用。即(startup.sh)在startup.sh文件中,我调用了一个类。那就是MainMethodClass。在main methodClass中,我编写了我的业务逻辑。当我在linux服务器上运行这个应用程序时,从使用putty一直运行到putty窗口未关闭。putty窗口关闭后,它也会停止。但即使我也关闭了,我也需要运行这个应用程序。我如何实现这个

这个问题与java无关,它实际上与linux的操作方式有关

您需要执行以下操作:

nohup <your_application_command> &
nohup&
请分别注意开始和结束处的“nohup”和“&”。

将从当前控制台分离运行的进程,并在关闭终端时让其继续。像这样跑

nohup java -jar my.jar &
默认情况下,它将通过管道将输出传输到nohup.out,因此如果您不想这样做,可以尝试:

nohup java -jar my.jar > /dev/null &

您应该能够执行以下操作:

nohup java -jar MyApplication.jar &

在linux机器上,您可以为您的jar创建一个服务(像spring boot这样的可执行jar)


可能重复感谢大家的快速响应它正在使用sh startup.sh&我在调用类文件即main methodclass&后进行了更改,它正在正常工作。再次感谢大家。我想运行以下命令“java-jar myApp.jar arg1&”,它导致nohup:忽略输入并将输出附加到'nohup.out'。要使用输入参数运行命令,我应该做什么?
# Set the Application as Service
ln -s $APP_BASE/bin/$APP_NAME.jar /etc/init.d/$APP_NAME

echo "Starting the application as service"
service $APP_NAME start