Java服务应用开发系列(一)之服务端环境部署
从0到1部署java服务端应用环境
概述
本文章主要讲述一个JAVA应用部署到服务器的最简过程,用于部署一个JAVA服务端应用的入门学习
环境
在此之前你需要准备一台阿里云服务器,安装的系统为CentOS
- 服务器
阿里云
- 系统版本
centos 6.8
- 项目采用框架
springboot
步骤
一、安装jdk8
-
jdk下载地址:https://www.oracle.com/java/technologies/downloads/#java8
- 现在下载需要注册oracle账号并且登录,选择最新版本下载安装:
- 下载完成后,上传到云服务器,可选择rz命令上传或者XFtp上传,此处采用rz命令行工具进行上传
- 现在下载需要注册oracle账号并且登录,选择最新版本下载安装:
-
jdk直接解压就相当于安装了,将上传好的jdk压缩包,移动到
/usr/local
目录下并解压- 移动:
mv jdk-8u361-linux-x64.tar.gz /usr/local/jdk-8u361-linux-x64.tar.gz
- 解压:
tar -zxvf jdk-8u361-linux-x64.tar.gz
- 修改读写权限:
chmod -R 777 jdk1.8.0_361
- 移动:
-
设置JAVA环境变量并导出
- 修改全局profile文件
vi /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_361 export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
- 输入命令使修改生效
source /etc/profile
- 修改全局profile文件
-
输入
java -version
检查是否安装成功,安装成功会看到如下内容:
二、安装tomcat
- 下载地址:https://tomcat.apache.org/download-90.cgi
- 下载完成后上传到服务器
/usr/local
目录下,并解压安装,过程与上面jdk一致 - 解压完后如下:
- 进入安装目录的bin目录
/usr/local/apache-tomcat-9.0.73/bin
,运行命令./startup.sh
启动tomcat - 启动成功后可以看到如下内容:
- 如需停止tomcat服务,在bin目录下执行shotdown脚本即可
./shutdown.sh
致此,安装tomcat成功,安装成功后,还需要配置相应的访问端口监听
三、查看tomcat监听的端口
- 查看tomcat服务的pid
ps -ef | grep tomcat
- 查看端口监听
netstat -anp | grep 31813
,可以看到端口为8005
在浏览器输入ip:8005访问服务,如果一切正常,会显示apache-tomcat的页面
四、遇到的问题
But,安装完成tomcat后,在我这里访问出错了
仔细看一下上面监听的端口只有一个8005,其对应的ip是本地巡回地址127.0.0.1。巡回地址只能在本机上通过localhost:8005
或27.0.0.1:8005
访问,其它电脑通过 公网ip:端口号 无法访问
网上查询资料得知,tomcat默认的端口为8080,怀疑是本地8080端口被占用导致,netstat -anp | grep 8080
查看一下占用情况,果然以前部署的一个博客使用了8080端口,如下:
既然端口被占用,那么修改一下tomcat的监听端口即可,找到tomcat的服务配置文件,修改监听的端口为8090
vi /usr/local/apache-tomcat-9.0.73/conf/server.xml
修改前:
修改后:
重启tomcat服务:
cd usr/local/apache-tomcat-9.0.73/bin
./shotdown.sh
./startup.sh
重启成功后,再次查询监听的端口,可以看到多出了一个8090的端口:
netstat -anp | grep java
再次在浏览器输入 服务器公网ip:8090 访问,一切正常:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?