目录
1、ubantu安装jdk
2、部署项目
解决 java -jar 报错:xxx.jar 中没有主清单属性
3、测试
4、查看系统部署的应用
1、ubantu安装jdk
#压缩文件jdk文件:tar -czvf jdk17.tar.gz jdk17
#解压jdk文件:tar -xzvf jdk17.tar.gz
参考:https://www.runoob.com/linux/linux-comm-tar.html
ubantu 配置jdk环境变量:
1、vim /etc/profile
##打开profile文件 ##打开之后把光标移动到文件的末尾,进行添加下面的命令:
#直接指向jre
export JAVA_HOME=/home/tools/jdk17
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
2、做完上面的操作,保存退出,然后刷新,使环境变量马上生效,命令:
source /etc/profile
做完以上就配置好了!!!
3、最后检查一下是否生效,通过直接输入
javac ,或者java -version
来查看是否生效。
参考:https://blog.csdn.net/qq_38556796/article/details/113684888
2、部署项目
进入目录: cd /root/testJar/
上传edge-msg-java-0.0.1-SNAPSHOT.jar到服务器
启动命令:
java -jar springboot.jar --server.port=8181 --spring.profiles.active=dev
nohup java -jar edge-msg-java-0.0.1-SNAPSHOT.jar --server.port=28001 > xx-1.0.log 2>&1 &
nohup java -jar edge-msg-java-0.0.1-SNAPSHOT.jar --server.port=28011 > xx-1.0.log 2>&1 &
nohup java -jar edge-msg-java-0.0.1-SNAPSHOT.jar --server.port=28021 > xx-1.0.log 2>&1 &
sh脚本启动
查看状态: ./test.sh status
启动项目:./test.sh start
关闭项目: ./test.sh stop
#!/bin/bash# jar包路径-你放置jar包的路径,可自定义
HOME='/root/testJar'# 启动
start(){cd $HOME# 将java程序后台启动,并将启动日志指向xx-1.0.log中nohup java -jar edge-msg-java-0.0.1-SNAPSHOT.jar --server.port=28001 > xx-1.0.log 2>&1 &nohup java -jar edge-msg-java-0.0.1-SNAPSHOT.jar --server.port=28011 > xx-1.0.log 2>&1 &nohup java -jar edge-msg-java-0.0.1-SNAPSHOT.jar --server.port=28021 > xx-1.0.log 2>&1 &# 打印字符串echo "edge-msg-java-0.0.1-SNAPSHOT.jar 启动成功"
}# 停止
stop(){# 查询到项目的pidtpid=$(ps -ef | grep edge-msg-java-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}')# 判断是否为空 if [ -z "$tpid" ]then# 如果为空 则打印这句话echo edge-msg-java-0.0.1-SNAPSHOT is already stppedelse# 如果不为空则执行echo kill $tpid # 关闭进程kill -9 $tpidecho "程序已关闭"fi
}# 查看状态
status(){# 获取pid的pid=$(ps -ef | grep edge-msg-java-0.0.1-SNAPSHOT.jar | grep -v grep)if [ -z "$pid" ]thenecho "edge-msg-java-0.0.1-SNAPSHOT 程序不存在"elseecho $pidfi
}case $1 instart)start
;;
stop)stop
;;
status)status
;;
*)echo "只能是{start|stop|status|}"
;;
esac
exit 0
参考:https://blog.csdn.net/wang20000102/article/details/135580501
解决 java -jar 报错:xxx.jar 中没有主清单属性
参考:解决 java -jar 报错:xxx.jar 中没有主清单属性 - Damon小智 - 博客园
3、测试
服务器查看指定端口是否开放:
netstat -ap | grep 28011lsof -i:8888
参考:https://blog.csdn.net/cnmilan/article/details/78890575 https://blog.csdn.net/weixin_42272869/article/details/115347588
winows telnet 测试服务器是否能正常访问:
telnet 117.134.8.120 28031
htop 查看服务器运行程序
4、查看系统部署的应用
netstat -ant
root@vims:~# netstat -ant
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:9411 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:8883 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:11883 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:1883 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:18083 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:8081 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:8083 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:8084 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.54:53 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:5369 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:4370 0.0.0.0:* LISTEN
tcp 0 0 192.168.96.91:1883 192.168.96.81:34050 ESTABLISHED
tcp6 0 0 :::9411 :::* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 264 192.168.96.91:22 192.168.30.174:63403 ESTABLISHED
这些参数的含义包括:
-a:显示所有连接中的Socket。
-n:直接使用IP地址,而不通过域名服务器。
-t:显示TCP传输协议的连接状态。
-u:显示UDP传输协议的连接状态。
-l:显示监听中的服务器的Socket。
-p:显示正在使用Socket的程序识别码和程序名称。
netstat -a 列出所有当前的连接
netstat -at 列出TCP协议的连接(tcp6代表ipv6的连接)
netstat -au 列出UDP协议的连接(tcp6代表ipv6的连接)
netstat -ant #-n:禁用反向域名解析,加快查询速度
netstat -tnl #-l:只列出监听中的连接
netstat -tlnp #-p:查看进程ID和进程名
netstat -tlnep #-e:列出用户名和进程的索引节点号。-ne一起使用,User列就是用户的ID号
注意:使用-p选项时,需要让命令运行时在root权限之下,否则就不能得到在root权限下的全部进程信息。所以一般在命令前加sudo
#查看http服务是否在运行
sudo netstat -aple | grep http
参考:netstat命令详解_netstat ipv6-CSDN博客