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
未完待续
Linux中java应用程序的部署,使其开机自动启动的更多相关文章
- C#.NET Form设置/取消开机自动运行,判断程序是否已经设置成开机自动启动(转载)
#region//开机自动运行 private void CB_Auto_CheckedChanged(object sender, EventArgs e) {//CB_ ...
- Linux中的小程序—— 进度条
在说正事之前,首先科普一下在什么是回车什么是换行? 我们通常所说的回车就是从一行的末尾跳到另一行的开头,但事实上这却是由回车和换行两个动作所完成的,也就是键盘上<enter>所完成的工作. ...
- linux中Java项目占用cpu、内存过高时的排查经历
一.使用top命令查看占用高资源的java项目的进程ID(pid): top 二.查看该进程中的线程所占用资源的情况:top -Hp pid 三.查看该线程对应的16进制:printf %x 1112 ...
- Linux中java项目环境部署,简单记录一下
这里只是简单的记录一下linux环境下面如何快速的搭配好环境,使你的项目能在linux环境上面运行. 很多时候,我们都是用windows环境进行配置调试的,而真正很多服务器都是在linux服务器上面的 ...
- linux进行Java开发环境的部署
一.前言: 今天正式向linux开发进攻了,其中遇到一些问题简单的记录一下,为之后的再次部署提供方便. 二.linux的Java8安装的两种方法: 1.源安装很简单,一个命令搞定. sudo apt- ...
- Linux中ansible批量管理软件部署及剧本编写
服务器版本信息: Centos6.9 [root@db02 ~]# uname -a Linux db02 2.6.32-696.el6.x86_64 #1 SMP Tue Mar 21 19:29: ...
- linux中chkconfig 启动程序顺序介绍
1)redhat的启动方式和执行次序是: 加载内核 执行init程序 /etc/rc.d/rc.sysinit # 由init执行的第一个脚本 /etc/rc.d/rc $RUNLE ...
- 解决Linux中java.net.UnknownHostException: oracledb.sys.iflashbuy.com问题
Linux环境报java.net.UnknownHostException: oracledb.sys.iflashbuy.com,原因为Linux下无法解析oracledb.sys.iflashbu ...
- Linux 中 java 访问 windows共享目录
有两个方案: 1.将windows共享目录,挂载到linux系统下,通过使用本地目录访问windows共享目录 2.通过samba的java实现包,不过需要开个windows共享目录的账户 http ...
随机推荐
- 学大伟业 Day 3 培训总结
今天讲的字符串: 不多说,直接看题 一.表达式求值 题目大意: 输入一行一个表达式,计算其答案 表达式包含非负整数.加减乘除.括号 两种做法 ·栈 ·表达式树 这里更推荐表达式树,因为栈是先压进去,逆 ...
- 【题解】洛谷P2926 [USACO08DEC]拍头Patting Heads
洛谷P2926:https://www.luogu.org/problemnew/show/P2926 思路 对于每一个出现的数 从1到Max 凡是这个数的倍数 那么ans就加上他的个数 PS:最后要 ...
- UVA - 136 Ugly Numbers(丑数,STL优先队列+set)
Ugly numbers are numbers whose only prime factors are 2, 3 or 5. The sequence 1, 2, 3, 4, 5, 6, 8, 9 ...
- SqlSugar批量添加修改问题
直接InsertRange空集合会报错,如果我们是同时执行多个添加或修改,不要共用一个上下文,最好是在方法里面声明上下文进行区分,不然容易报错 //如果同时执行多个添加,更新 操作不要共用一个上下文, ...
- Git错误
$ rm -rf .git $ git config --global core.autocrlf false $git init $git add . ---------------------- ...
- 排序算法 JavaScript
一.冒泡排序 算法介绍: 1.比较相邻的两个元素,如果前一个比后一个大,则交换位置. 2.第一轮把最大的元素放到了最后面. 3.由于每次排序最后一个都是最大的,所以之后按照步骤1排序最后一个元素不用比 ...
- js事件委托代码优化【感悟总结】
前两天接手了同事的一个项目,是一个网站首页,其中有段代码很累赘,要实现的功能就是, 通过给父元素添加鼠标移入移出事件,来控制子元素显示隐藏. html代码,一共有四个父元素div,每个父元素嵌套一个子 ...
- iOS | FMDB快速上手
任何的开发都或多或少的接触到数据库,而在IOS中一般使用的是SQLite数据库,这是一个轻量功能较为不错的数据库.而现在用到比较多的第三方数据库操作框架就是FMDB.废话不多说,相信查找到这篇文章的都 ...
- CodePush自定义更新弹框及下载进度条
CodePush 热更新之自定义更新弹框及下载进度 先来几张弹框效果图 非强制更新场景 image 强制更新场景 image 更新包下载进度效果 image 核心代码 这里的热更新Modal框,是封装 ...
- Laravel 集合的处理
其中的方法有: $arrs = collect($arr)->collapse()->collapse() //去除最外一层数组,不论最外层数组时否有值,都会去除掉 collect($ar ...