java linux 服务_java项目部署Linux服务器几种启动方式总结经验
一:两种部署包:
部署之前先说下两种包,java项目部署到服务器一般有用war包的,也有用jar包的,微服务spring-cloud普及后大部分打包都是jar,部署之前先搞清楚自己要打war包还是jar包,下面小介绍两种包的区别:
spring boot既可以打成war发布,也可以找成jar包发布。说一下区别:
jar包:直接通过内置tomcat运行,不需要额外安装tomcat。如需修改内置tomcat的配置,只需要在spring boot的配置文件中配置。内置tomcat没有自己的日志输出,全靠jar包应用输出日志。但是比较方便,快速,比较简单。
war包:传统的应用交付方式,需要安装tomcat,然后放到waeapps目录下运行war包,可以灵活选择tomcat版本,可以直接修改tomcat的配置,有自己的tomcat日志输出,可以灵活配置安全策略。相对打成jar包来说没那么快速方便。
个人比较偏向打成jar包的方式发布应用,因为spring boot已经内置了tomcat,无需额外配置。其实可以搜索下spring
boot的特点,有个非常重要的特性就是spring
boot把市面优秀的开源技术,都集合起来,方便快速应用。技术没有百分百这种好,也没有百分百那种不好,存在即合理,最主要还是看个人习惯和业务场景需求了。
二:jar包署部署(推荐)
先说下jar包怎么部署启动项目,这里的jar包前提是springboot项目打的,pom文件已经设置过了入口文件等相应设置,具体设置这里就不说了。
先把jar包上传到Linux服务器
1.安装 xshell 、xftp软件
Xshell功能简介
Xshell [1] 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。Xshell 通过互联网到远程主机的安全连接以及它创新性的设计和特色帮助用户在复杂的网络环境中享受他们的工作。
Xshell可以在Windows界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的。除此之外,其还有丰富的外观配色方案以及样式选择。
Xftp 功能简介
是一个基于 MS windows 平台的功能强大的SFTP、FTP 文件传输软件。使用了 Xftp 以后,MS windows 用户能安全地在 UNIX/Linux 和 Windows PC 之间传输文件。Xftp 能同时适应初级用户和高级用户的需要。它采用了标准的 Windows 风格的向导,它简单的界面能与其他 Windows 应用程序紧密地协同工作,此外它还为高级用户提供了众多强劲的功能特性。
2.通过安装以上两个软件可以实现window电脑远程控制Linux服务器,这样就可以将我们打包好的jar文件传输到Linux服务器上进行项目的部署。
假设Linux服务上已经有了打好的jar包,下面介绍几种常用的部署方式:
1、java -jar启动方式。
java -jar *.jar
此中方式只会运行在当前窗口,当关闭窗口或断开连接,jar程序就会结束。
2、nohup启动方式。(推荐)
# nohub: 不挂断的运行命令
# &:后台运行
# >: 日志重定向输出到
nohub java -jar *.jar >jarLog.txt &
3、注册为Linux服务(推荐)
首先需要现修改pom中spring-boot-maven-plugin配置,其实spring boot 打成jar包以后,是可以直接像shell脚本一样直接运行的,要实现这样可以直接运行,pom.xml 的build节点需要增加这样的配置:
org.springframework.boot
spring-boot-maven-plugin
true
在Linux上注册服务(此处基于init.d注册部署)
将打好的jar包放到Linux任意目录 eg: /var/project/
sudo ln -s /var/project/demo.jar /etc/init.d/abc
(其中demo为jar包名称,abc为服务名称)
之后就可以用 service XXX start 命令来启动jar包
启动/关闭 服务
service abc start/stop
查看状态
service abc status
设置开机自启
chkconfig abc on
4、systemctl启动方式。
在/usr/lib/systemd/system目录新增’abc.service’文件(文件名自己定义我这里例子是abc.service),具体内容如下:
[Unit]
Description=abc.service
Requires=mysql.service mongod.service redis.service
Wants=abc.service
After=syslog.target network.target mysql.service mongod.service redis.service abc.service
[Service]
User=manager
Group=manager
EnvironmentFile=/home/.bash_profile
WorkingDirectory=/home/tomcat
ExecStart=/usr/bin/java -Xms512m -Xmx512m -jar /home/你的项目名.jar --spring.profiles.active=test
[Install]
WantedBy=multi-user.target
更改service之后要:systemctl daemon-reload,上述文件中用到的.bash_profile文件如下:
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:$HOME/bin
LOG_PATH=/home/logs
export LOG_PATH
export PATH
其中上述中的LOG_PATH可以在项目中引用,例如:
5、tomcat启动方式。
直接将*.jar文件拷贝到tomcat\webapps\目录下,启动tomcat,访问localhost:8080/jar包名即可。
注意:启动tomcat的时候优先用服务方式启动tomcat如下:
nohup ./startup.sh &(&可以用于后台运行)
注意:用tomcat启动jar需要注意的是打包的时候需要把包里面tomcat排除掉:
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-tomcat
最后补充一些常规命令:
在Linux项目上对项目进行操作的命令符如下:
后台暂时运行:java -jar /root/yyxx/cloud-yyxx-web-1.0-exec.jar(后台暂时运行)
后台永久运行,想要停止需杀死后台进程:nohup java -jar /root/yyxx/cloud-yyxx-web-1.0-exec.jar &()
查看jar进程:ps aux|grep cloud-yyxx-web-1.0-exec.jar
杀掉进程: kill -9 进程号
三:war包署部署
最简单,常见的部署方法,直接将war包放到tomcat的wabapp目录下,运行tomcat就行。
具体步骤如下:
a. 把项目打包到wabapp目录下。如下图
b.在bin目录下运行命令 startup.bat 启动项目。(在bin目录里按 shift+右键 即可调出命令框。关闭项目 shutdown.bat)如下图
你放在wabapp下的所有项目就会自启动,自启动伴随着解压缩包的动作,启动完成后在wabapp下会看到解压后的项目文件夹。运行成功的命令显示如下
这样就表示项目启动成功!打开浏览器访问下
java linux 服务_java项目部署Linux服务器几种启动方式总结经验相关推荐
- gin项目部署到服务器并后台启动
前言 我们写好的gin项目想要部署在服务器上,我们应该怎么做呢,接下来我会详细的讲解一下部署教程. 1.首先我们要有一台虚拟机,虚拟机上安装好go框架. 2.将写好的项目上传到虚拟机上. 3.下载好项 ...
- java map遍历_Java中Map集合的两种遍历方式
Java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下Java中Map集合的两种遍历方式! 关于遍历Map集合的几 ...
- 3种设计模式java小程序_Java设计模式之单例模式(3种实现方式)
饿汉模式 public class Singleton {//实例化private static Singleton instance=new Singleton();private Singleto ...
- filezilla 设置服务器_java项目部署到linux服务器,微信小程序后台springboot项目部署到腾讯云服务器(图文详解)...
前面给大家讲了一个点餐系统的开发,包括java点餐后台和微信点餐小程序.可是都是教大家如何在本地把项目跑起来.今天就来教大家如何把这个点餐系统部署到服务器,实现商用. 传送门 点餐系统的开发,java ...
- springboot 获取登录浏览器_java项目部署到linux服务器,微信小程序后台springboot项目部署到云服务器(图文详解)...
前面给大家讲了一个点餐系统的开发,包括java点餐后台和微信点餐小程序.可是都是教大家如何在本地把项目跑起来.今天就来教大家如何把这个点餐系统部署到服务器,实现商用. 传送门 点餐系统的开发,java ...
- 海康sdk项目部署Linux系统时出现java.lang.UnstisfiedLinkError:jnidispatch(xxx)not found in resource path错误
海康sdk项目部署Linux系统时出现java.lang.UnstisfiedLinkError:jnidispatch(xxx)not found in resource path错误 问题描述 解 ...
- Django+Linux+Uwsgi+Nginx项目部署文档
Django+Linux+Uwsgi+Nginx项目部署文档 WSGI 在生产环境中使用WSGI作为python web的服务器 WSGI:全拼为Python Web服务器网关接口,Python We ...
- 项目部署到服务器后响应速度慢
很简单的一个项目,就是调用API 查询了一下快递信息.在本地运行的时候响应时间最慢也就是几百毫秒,但是把项目部署到服务器上就成了几秒钟.莫名奇妙的就是慢,搞了一下午,检查了服务器网络.配置等原因,都没 ...
- 如何将本地python项目部署到服务器上_如何将本地的Django项目部署到云服务器
如何将本地的Django项目部署到云服务器 开发环境 开发语言: Python 后台框架:Django 前端框架:bootstrap web服务器:nginx wsgi服务器:uwsgi 查看本地项目 ...
最新文章
- 一些关于Java的句子
- RDKit | 将rdMolDraw2D和RDKit生成的结构图输出到Excel
- 【EventBus】EventBus 源码解析 ( 取消订阅 )
- python提示错误TypeError: 'dict_keys' object does not support indexing
- VDI序曲十五 配置 RemoteFX 以获得最佳体验
- 【10】jQuery学习——入门jQuery选择器之表单选择器
- IDR、CRA、BLA、RASL、RADL、closed-gop、open-gop
- jquery 自动完成 Autocomplete
- sql server序列_SQL Server中的序列对象功能
- PAT 乙级 1019. 数字黑洞 (20) Java版
- Spring AOP执行方法
- sql_插入,修改,删除
- windows 搭建kms服务器激活_搭建kms服务器,自建KMS激活服务器的两种方法
- iphone的致命硬伤
- 使用C#实现支持人脸识别的本地照片管理工具
- 数字信号与模拟信号的区别
- 荣耀手机用什么蓝牙耳机好?适合荣耀手机的蓝牙耳机推荐
- POWER DESIGNER导出数据字典
- 搭建个人内网穿透服务
- Java Web 图说
热门文章
- 目标检测第5步:如何在Windows 10系统下,搭建YOLOv5(5.0)环境?保姆级,没有人比这个更详细了(更新时间2022.3.22)
- java中解决组件重叠的问题(例如鼠标移动组件时)
- mysql怎么新增_mysql怎么新增用户
- ag 搜索工具参数详解
- Shell脚本多行换行报错:- unrecognized arguments- \
- pythonhelloworld实例_Python基于Tkinter的HelloWorld入门实例
- 10分钟用python编写贪吃蛇小游戏_牛得一批!10分钟用Python编写一个贪吃蛇小游戏...
- matlab bad apple,【bad apple】matlab制作矩阵苹果~
- java方法的参数类型_Java 基础 14 方法的重载 与 方法参数类型详解
- strocli64 源码_storcli 简易使用介绍