Linux中java应用程序的部署,使其开机自动启动

初步需求:将在Windows/MyEclipse中开发的java应用程序部署到Linux服务器上,使其运行

针对需求,可以参考下面这些文章,但是这些文章很多东西没有提及到,我自己尝试部署运行

在linux下利用nohup来后台运行java程序    http://blog.csdn.net/lzzyok/article/details/7177293

在linux下利用脚本启动java程序    http://blog.csdn.net/hbcui1984/article/details/1670775

在linux下利用脚本启动java程序    http://blog.csdn.net/catoop/article/details/8297221

测试:

windows下,MyEclipse中新建一个简单的Java项目Hello

代码如下:

 1 package com.test;
 2 
 3 public class HelloWorld {
 4     
 5     public static void main(String[] args) {
 6         
 7         System.out.println("测试success");
 8         
 9     }
10 
11 }

此应用程序没有引用其他jar包或配置文件

Linux服务器

首先,必须在Linux服务器上搭建运行Java应用程序的环境

1.安装JDK,配置环境变量 

2.将Java应用程序打包、上传

    将上述project打包为Test.jar ,在windows命令行控制台中使用【java -jar Test.jar】命令运行该程序,查看运行结果是否正确;若没有问题,将该jar文件上传至Linux服务器上,再次使用该命令测试一下

3.编写控制Java应用程序运行的脚本文件run.sh

1 java -classpath ../lib/HelloWorld.jar com.test.HelloWorld

4.运行脚本文件run.sh,观察Java应用程序的运行情况

=================================================================================

进阶部分:

前述内容只是简单的测试,现项目测试阶段,需要将在MyEclipse上初步开发完毕的Java应用程序部署到Linux服务器上,需求如下:

(1)使用.sh脚本文件控制java程序的启动、停止、重启、查看状态

需求升级:

(2)将java程序部署为开机自动启动,使用service hello status/stop等命令控制程序的启动、停止、重启、查看状态

我是参考下面几篇文章实现的

Linux中部署JAVA程序

http://www.linuxidc.com/Linux/2013-09/90673.htm

设置Linux自启动服务

http://just4java.iteye.com/blog/474392

===================================================

注:因为刚接触Linux,根据需求,一开始只找到红色标注的第一篇文章,这个能看懂,也因此解决了需求(1)

但是当我想解决需求(2)的时候,相当不顺利,我查了很长时间的资料,没发现什么实质性的东西,后来突然间看到红色标注的第二篇文章,至此问题解决了

红色标注的两篇文章相结合,即可解决上述两个需求

===================================================

大家也可以再看看下面这几篇文章,很多地方与前面的文章大同小异

在CentOS中init.d service 开机时自动启动脚本        注:其实这篇文章也应该可以解决上述需求,但是感觉写的有点不大清楚,一开始没看明白

http://www.111cn.net/sys/CentOS/68197.htm

Linux下Java程序的启动shell脚本

http://magicmind.iteye.com/blog/411771

======================================================================== 

这是从网上看到的,没有实践过,不知道是否容易部署,留作以后有时间再研究,貌似都是使用同一种方式,到时可以参考比较

使用Java Service Wrapper将java程序作为linux服务并且开机自动启动

http://www.blogjava.net/shufudong/articles/283241.html

使用Java Service Wrapper将Java程序发布成Windows Service

http://www.cnblogs.com/Cindy_weiwei/archive/2010/04/19/1715196.html

Java程序作linux服务并且开机自动启动

http://www.cnblogs.com/qiyebao/p/3770318.html

=================================================

网上有帖子说有两个开源项目可以实现将java程序注册成系统服务,先记录下来,后续研究

1) http://sourceforge.net/projects/wrapper/ 
Configurable tool which allows Java applications to be installed and controlled like native NT or Unix services. Includes fault correction software to automatically restart crashed or frozen JVMs. Critical when app is needed 24x7. Built for flexibility. 

2) http://sourceforge.net/projects/yajsw/ 
YAJSW is an LGPL licensed pure java alternative for tanuki java service wrapper. It implements a multitude of additional functions and can be easily extended with groovy scripts. JSW configurations can be easily ported.

=============================================

Windows中java程序的部署,开机自启动

http://blog.csdn.net/x844010689/article/details/8117703

未完待续

原文地址:https://www.cnblogs.com/studyLog-share/p/4692382.html