手把手教将Java程序部署到Centos7

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 看这个教程,可以很轻松的将Java程序部署到Centos7。

看了这个教程,可以很轻松的将Java程序部署到Centos7。


虚拟机centos7配置IP地址和各种坑


一、导入centos7虚拟机


打开VMWare,点击“打开虚拟机”,选择centos7.ova之后,选择存储路径:


微信图片_20221009173245.png


点击导入:


微信图片_20221009173255.png


选择“不再显示此消息”,点击“重试”按钮:


微信图片_20221009173259.png


点击“编辑虚拟机设置”,修改处理器、内存、硬盘等信息后,启动。


按Ctrl+Alt键可以切换到windows下。


启动成功后,输入账号root密码123456登录。


二、配置ip地址


先在VMWare里设置好网络连接方式为桥接模式:


微信图片_20221009173302.png


有关于centos7获取IP地址的方法主要有两种,1:动态获取ip;2:设置静态IP地址。


1、动态获取ip(前提是你的路由器已经开启了DHCP)


修改网卡配置文件 vi /etc/sysconfig/network-scripts/ifcfg-enp0s3 (最后一个为网卡名称)


微信图片_20221009173646.png


动态获取IP地址需要修改两处地方即可


(1)bootproto=“dhcp”


(2)onboot=“yes”


微信图片_20221009173306.png


修改后重启一下网络服务即可 systemctl restart network


|[root@mini ~]# systemctl restart network
|[root@mini ~]# 


这样动态配置IP地址就设置好了,这个时候再查看一下ip addr 就可以看到已经获取了IP地址,且可以上网(ping 百度)


2、设置固定ip


BOOTPROTO=“static”


IPADDR=“192.168.0.121” #你想要设置的固定IP,理论上192.168.1.4-192.168.1.253之间都可以,请自行验证;

NETMASK=“255.255.255.0” #子网掩码,不需要修改;

GATEWAY=“192.168.0.1” #网关,这里是VMware网关IP地址,前面要你记录下的那个IP。


DNS1=“114.114.114.114” #这个是国内的DNS地址,是固定的;


三、各种坑


1、systemctl restart network报错


Job for network.service failed. See ‘systemctl status network.service’ and ‘journalctl -xn’ for details.


2、ping不通百度


四、解决办法


1、 排除ip冲突


用主机ping这个ip看是否已存在。


2、删除多余的网卡配置文件


删除ifcfg-e开头的多余的网卡配置文件


|rm -f /etc/sysconfig/network-scripts/ifcfg-eXXX


3、HWADDR错误 ,查到正确的HWADDR


输入 ip addr,查找到HWADDR


微信图片_20221009173326.png


进入 cd /etc/sysconfig/network-scripts 目录编辑对应的 vim ifcfg-ensXX,将HWADDR设置正确,重启 service network restart


或者删除HWADDR。


00:0c:29:ad:24:51


4、将ifc-ethXX中的DEVICE 那一行注释掉,或者删掉


5、将ifcfg-xxx中的NAME改为和文件名一致


5、删除网卡的UUID


6、停止NetworkManager.service


停止网络管理服务


[root@localhost Desktop]# systemctl stop NetworkManager.service

[root@localhost Desktop]# systemctl disable NetworkManager.service

Removed symlink /etc/systemd/system/multi-user.target.wants/NetworkManager.service.

Removed symlink /etc/systemd/system/dbus-org.freedesktop.NetworkManager.service.

Removed symlink /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service.


重启network服务


[root@localhost network-scripts]# service network restart


Restarting network (via systemctl): [ OK ]


7、删除设备规则配置文件


无论有无这文件,删就是了


|rm -f /etc/udev/rules.d/70-persistent-net.rules


8、打开VMWare的虚拟机服务


微信图片_20221009173333.png

9、看VMWare右下角的网络适配器是否连接,如果没有连接则连接上


10、重启大法


如果以上都没有解决,还有最后一招-- 重启 看一看有没有奇迹发生!


五、无论如何,还是不行


1、使用NAT模式


2、先改为动态获取ip地址


3、查看当前DNS


cat /etc/resolv.conf


4、改为静态ip


5、更新完需要的软件后可再次改回桥接模式


六、CentOS7下安装JDK1.8


1、检查是否已经安装了jdk


键入命令 java -version 查看。


2、下载JDK


下载地址https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html


往下拉


微信图片_20221009173338.png


3、上传到centos


微信图片_20221009173341.png

将本地d:/tmp/jdk-8u281-linux-x64.tar.gz上传到/usr下,重命名为java1.8:


本地目录切换到d:/tmp1


sftp>lcd d:/tmp1


centos目录切换到/usr


sftp>cd /usr


查看本地目录


sftp> lpwd

d:/tmp


查看centos目录


sftp> pwd

/usr


上传


sftp> put jdk-8u281-linux-x64.tar.gz


重命名


sftp> mv jdk-8u281-linux-x64.tar.gz java1.8


4、解压安装JDK


键入命令 cd /usr 来到刚才的复制文件处,键入命令tar -zxvf java1.8 进行解压,解压出一个文件夹jdk1.8.0_281,进入该文件夹


微信图片_20221009173347.png


5、配置JDK环境变量


键入命令 vi /etc/profile 修改配置文件,记得要在root权限下修改


输入i进入编辑状态,然后将光标移到最后一行,粘贴如下内容,JAVA_HOME=/usr/jdk1.8.0_281 要根据自己的解压目录设置


#java environment

export JAVA_HOME=/usr/jdk1.8.0_281

export CLASSPATH=.:J A V A H O M E / j r e / l i b / r t . j a r : {JAVA_HOME}/jre/lib/rt.jar:JAVA

H


OME/jre/lib/rt.jar:{JAVA_HOME}/lib/dt.jar:J A V A H O M E / l i b / t o o l s . j a r e x p o r t P A T H = {JAVA_HOME}/lib/tools.jar export PATH=JAVA

H


OME/lib/tools.jarexportPATH=PATH:${JAVA_HOME}/bin

效果如下


微信图片_20221009173351.png

点击esc 进入命令模式 输入:wq 保存修改信息


然后键入命令source /etc/profile 使配置文件生效。


6、测试是否安装成功


键入命令 java -version 查看。


微信图片_20221009173355.png


七、centos7下安装mysql5.7


1、安装wget


yum -y install wget


2、下载rpm包


|sudo wget http://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/mysql57-community-release-el7-10.noarch.rpm
|sudo rpm -ivh mysql57-community-release-el7-10.noarch.rpm


3、yum 安装mysql-community-server


|sudo yum -y install mysql-community-server


这一步比较耗时


4、启动mysql

|sudo systemctl start mysqld


5、设置开机启动


|sudo systemctl enable mysqld


6、查找初始密码


在/var/log/mysqld.log文件中找到初始密码


|cat /var/log/mysqld.log


微信图片_20221009173405.png


此处初始密码为:waf_eHWkr42K


7、登陆mysql

|sudo mysql -uroot -p


输入初始密码:waf_eHWkr42K


8、修改密码


|ALTER USER 'root'@'localhost' IDENTIFIED BY '1qaz!QAZ';


密码强度默认规则为(长度最少8位,包含大小写字母、数字、特殊字符)


9、设置允许远程登陆


1.执行授权命令


|GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '1qaz!QAZ' WITH GRANT OPTION;


2.退出mysql操作控制台


|exit


3.开放3306端口


开启防火墙


|sudo systemctl start firewalld.service


永久开放3306端口


|sudo firewall-cmd --add-port=3306/tcp --permanent


重新加载


|sudo firewall-cmd --reload


关闭防火墙


|sudo systemctl stop firewalld.service


10、设置默认编码为utf8


查看修改前mysql编码


|show variables like '%chara%';


微信图片_20221009173411.png


修改/etc/my.cnf文件,加入下面两行


|sudo vi /etc/my.cnf
|character_set_server=utf8
|init_connect='SET NAMES utf8'


微信图片_20221009173415.png

修改后,重启mysql


|sudo systemctl restart mysqld


查看修改后的mysql编码


微信图片_20221009173418.png


11、测试


使用navicat连接mysql


微信图片_20221009173421.png


数据文件位置:/var/lib/mysql


配置文件位置:/etc/my.cnf


日志文件位置:/var/log/mysqld.log


八、centos7实现springboot项目开机自启动


1、导入数据库


导入mysql数据库。


2、上传打包好的jar包文件


上传jar包到到/usr/local/project/ 。


试运行java -jar springboot.jar


3、新增service文件


在 /etc/systemd/system/ 目录下面编辑一个以service为后缀的文件:


cd /etc/systemd/system

vi java.service


文件内容如下:


|[Unit]
|Description=java
|After=syslog.target
|[Service]
|Type=simple
|ExecStart=/usr/jdk1.8.0_281/bin/java -jar /usr/local/project/springboot.jar
|[Install]
|WantedBy=multi-user.target


其中:/usr/jdk1.8.0_281为jdk安装路径,/usr/local/project/springboot.jar 为打包好的jar包文件。


4、添加执行权限


chmod +x /etc/systemd/system/java.service


5、重新加载服务


systemctl daemon-reload


6、启动服务并加入开机自启动


systemctl start java

systemctl enable java


ps -ef | grep “java”| grep -v grep


systemctl status java.service -l


九、centos7下安装Tomcat8.5


1、下载tomcat8.5


https://tomcat.apache.org/download-80.cgi


微信图片_20221009173428.png


2、上传打包好的jar包文件并解压


上传到/usr/。


tar -zxvf apache-tomcat-8.5.63.tar.gz


3、tomcat增加启动参数


tomcat 根目录下需要增加一个pid文件tomcat.pid。


|touch tomcat.pid


在tomcat/bin 目录下面,增加 setenv.sh 配置,catalina.sh启动的时候会调用,同时配置Java内存参数。


|export CATALINA_HOME=/usr/apache-tomcat-8.5.63
|export CATALINA_BASE=/usr/apache-tomcat-8.5.63
|#add tomcat pid
|CATALINA_PID="$CATALINA_BASE/tomcat.pid"
|#add java opts
|JAVA_OPTS="-server -XX:PermSize=256M -XX:MaxPermSize=1024m -Xms512M -Xmx1024M -XX:MaxNewSize=256m"


4、新增service文件


在 /etc/systemd/system/ 目录下面编辑一个以service为后缀的文件:


|vi /etc/systemd/system/tomcat.service


文件内容如下:


|[Unit]
|Description=Tomcat
|After=syslog.target network.target remote-fs.target nss-lookup.target 
|[Service]
|Type=forking
|Environment="JAVA_HOME=/usr/jdk1.8.0_281"
|PIDFile=/usr/apache-tomcat-8.5.63/tomcat.pid
|ExecStart=/usr/apache-tomcat-8.5.63/bin/startup.sh
|ExecReload=/bin/kill -s HUP $MAINPID
|ExecStop=/bin/kill -s QUIT $MAINPID
|PrivateTmp=true 
|[Install]
|WantedBy=multi-user.target


5、添加执行权限


chmod +x /etc/systemd/system/tomcat.service


6、重新加载服务


systemctl daemon-reload


7、启动服务并加入开机自启动


直接启动


systemctl start tomcat


加入开机启动


systemctl enable tomcat


查看启动状态


systemctl status tomcat.service


停止服务


systemctl stop tomcat


查询tomcat 进程


ps -ef | grep “tomcat”| grep -v grep


如果多个tomcat,则拷贝到不同的目录,使用不同的端口。tomcat.service文件名不同即可。


例如:tomcat1.service tomcat2.service tomcat3.service


8、重启服务器


重启,试试能不能访问。

目录
相关文章
|
20小时前
|
小程序 前端开发 Java
Java程序的种类和结构
Java程序的种类和结构
|
2天前
|
缓存 算法 Java
如何提高Java程序的性能?
Java是一种非常流行的编程语言,但是在处理大规模数据和高并发时,程序性能容易受到影响。本文将分享一些提高Java程序性能的技巧。
|
4天前
|
Shell Linux 应用服务中间件
centos系统内容器部署服务访问不到是因为run后面加了bash
centos系统内容器部署服务访问不到是因为run后面加了bash
|
6天前
|
搜索推荐 算法 Java
滚雪球学Java(29):数组长度和排序算法:让你的程序更高效
【5月更文挑战第4天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
13 0
滚雪球学Java(29):数组长度和排序算法:让你的程序更高效
|
6天前
|
JavaScript 前端开发 Java
java项目的打包将vue放到.jar里面部署
java项目的打包将vue放到.jar里面部署
|
6天前
|
前端开发 Java 应用服务中间件
【异常解决】java程序连接MinIO报错The request signature we calculated does not match the signature you provided.
【异常解决】java程序连接MinIO报错The request signature we calculated does not match the signature you provided.
27 0
|
6天前
|
Java Linux C语言
一步带你了解java程序逻辑控制
一步带你了解java程序逻辑控制
17 2
|
6天前
|
Java 数据安全/隐私保护
java中程序控制的典例
java中程序控制的典例
13 1
|
1天前
|
安全 Java 程序员
深入理解Java并发编程:线程安全与性能优化
【5月更文挑战第20天】本文将深入探讨Java并发编程的核心概念,包括线程安全和性能优化。我们将详细解析synchronized关键字、ReentrantLock类以及java.util.concurrent包中的高级工具类,如Semaphore、CountDownLatch和CyclicBarrier等。通过实例演示如何使用这些工具来提高多线程程序的性能和可靠性。
|
1天前
|
安全 算法 Java
深入理解Java并发编程:线程安全与性能优化
【5月更文挑战第20天】 在多核处理器日益普及的今天,并发编程成为了软件开发中不可忽视的重要话题。Java语言提供了丰富的并发工具和机制来帮助开发者构建高效且线程安全的应用程序。本文将探讨Java并发的核心概念,包括线程同步、锁机制、以及如何通过这些工具实现性能优化。我们将透过实例分析,揭示并发编程中的常见问题,并展示如何利用现代Java API来解决这些问题。