Linux搭建Java项目部署环境
1.搭建Java部署环境1.1aptapt (Advanced Packaging Tool), Linux软件包管理⼯具.⽤于在Ubuntu、Debian和相关Linux发⾏版上安装、更新、删除和管理deb软件包.⼤多数apt命令必须以具有sudo权限的⽤⼾⾝份运⾏ 或者是管理身份运行如果切换到root⽤⼾,命令前就不需要加sudo了apt常⽤命令# 列出所有软件包 apt list # 输出所有包的列表,内容⽐较多,可以使⽤grep命令过滤输出 apt list |grep java # 更新软件包数据 sudo apt-get update # 安装软件包 sudo apt install package_name # 删除软件包 sudo apt remove package_nameremove命令将卸载给定的软件包但可能会留下⼀些配置⽂件。如果要删除包含所有配置⽂件的软包请使⽤purge⽽不是removeapt remove 和 apt purge 的区别• apt remove 删除包的⼆进制⽂件,它留下了残留的配置⽂件.• apt purge 删除与包相关的所有内容,包括配置⽂件.如果弄乱了程序的配置,希望从系统中完全清除它的痕迹再重新开始,可以使⽤ apt purge通常使⽤ apt remove 就⾜够了1.2JDK更新软件包数据sudo apt-get update安装jdk 对应的版本#查找jdk包 apt list |grep jdk #安装jdk sudo apt install openjdk-17-jdk使⽤java -version 验证是否安装成功.如果提⽰java命令找不到则说明安装失败.如果显示java版本号则说明安装成功.卸载JDK检查安装的是哪个OpenJDK # dpkg --list | grep -i jdk 移除 openjdk包: # apt-get purge openjdk* 卸载 OpenJDK 相关包 # apt-get purge icedtea-* openjdk-* 检查所有 OpenJDK包是否都已卸载完毕 # dpkg --list | grep -i jdk1.3Mysql使⽤apt安装MySQL#查找安装包 apt list |grep mysql-server #安装mysql sudo apt install mysql-server查看MySQL状态显示active (running) 就好了sudo systemctl status mysqlMySQL安装安全设置默认的MySQL设置是不安全的,MySQL安装提供了⼀个安全脚本,⽤于解决不太安全的默认选项.sudo mysql_secure_installation接下来按照提⽰输⼊roothcss-ecs-0bb1:~# sudo mysql_secure_installation #安装安全设置​ Securing the MySQL server deployment. Connecting to MySQL using a blank password. VALIDATE PASSWORD COMPONENT can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD component? Press y|Y for Yes, any other key for No: Y #是否设置验证密码组件​ There are three levels of password validation policy: LOW Length 8 MEDIUM Length 8, numeric, mixed case, and special characters STRONG Length 8, numeric, mixed case, special characters and dictionary file Please enter 0 LOW, 1 MEDIUM and 2 STRONG: 2 #设置密码强度​ Skipping password set for root as authentication with auth_socket is used by default. If you would like to use password authentication instead, this can be done with the ALTER_USER command. See https://dev.mysql.com/doc/refman/8.0/en/alter-user.html#alter-userpassword-management for more information. By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y #默认情况下MySQL安装有⼀个匿名⽤⼾, 允许任何⼈登录MySQL. 是否删除匿名⽤⼾​ Success. Normally, root should only be allowed to connect from localhost. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y #仅 应允许root从localhost连接​ Success. By default, MySQL comes with a database named test that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y #默认情况下, MySQL带有⼀个test数据库, 是否删除?​ - Dropping test database... Success. - Removing privileges on test database... Success. Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y #是否现在加载配置, 使刚才的修改⽣效? ​ Success. All done!1.4. 设置密码连接mysql服务器sudo mysql使⽤alter user 命令修改密码ALTER USER rootlocalhost IDENTIFIED WITH mysql_native_password BY XXXXXXX;这个XXX代表的是刚才设置的密码卸载MySQL#停⽌mysql sudo systemctl stop mysql #卸载mysql sudo apt-get remove --purge mysql-server mysql-client mysql-common #删除 MySQL 配置⽂件和数据 sudo rm -rf /etc/mysql /var/lib/mysql #清理残留⽂件和⽬录 sudo apt-get autoremove sudo apt-get autoclean #验证卸载结果 mysql --version2.部署Web项⽬到Linux1 .什么是部署⼯作中涉及到的环境• 开发环境:开发⼈员写代码⽤的机器.• 测试环境:测试⼈员测试程序使⽤的机器.• ⽣产环境(线上环境):最终项⽬发布时所使⽤的机器.对稳定性要求很⾼.把程序安装到⽣产环境上,这个过程称为部署.也叫上线.⼀旦程序部署成功,那么这个程序就能被外⽹中千千万万的普通⽤⼾访问到。换句话说,如果程有BUG,这个BUG也就被千千万万的⽤⼾看到了.部署过程⾄关重要,属于程序开发中最重要的⼀环.⼀旦部署出现问题,极有可能导致严重的事故(服务器不可⽤之类的).为了防⽌部署出错,⼀般公司内部都有⼀些⾃动化部署⼯具(如Jenkins等).当前我们先使⽤⼿⼯部署的⽅式来完成部署 。2.环境配置程序正常运⾏,需要保证环境和程序都要正确,我们需要先设置环境数据准备按照之前的数据库建表脚本,在服务器上运⾏,建⽴相同的表结构.程序配置⽂件修改实际⼯作中,开发环境,测试环境以及⽣产环境的配置都是不⼀样的⽐如mysql的⽤⼾名和密码我们可以针对不同的环境,设置不同的配置多平台⽂件配置针对不同平台创建不同的配置⽂件,要求名字为application-XXX.yml或者application-XXX.properties以下以application-XXX.yml为例开发环境dev测试环境test生产环境prod固定格式,只有后⾯的字⺟可以修改在配置⽂件⾥写不同的内容application-dev.yml注意自己的数据库用户名和密码自己设置的spring: datasource: url: jdbc:mysql://127.0.0.1:3306/java_blog_spring? characterEncodingutf8useSSLfalse username: root password: root driver-class-name: com.mysql.cj.jdbc.Driverapplication-prod.ymlspring: datasource: url: jdbc:mysql://127.0.0.1:3306/java_blog_spring? characterEncodingutf8useSSLfalse username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver在主配置⽂件 application.yml 中指定配置⽂件,并删除数据库相关配置spring: profiles: active: prod从Maven中读取环境配置变量profiles profile iddev/id properties profile.namedev/profile.name /properties /profile profile idprod/id activation activeByDefaulttrue/activeByDefault /activation properties profile.nameprod/profile.name /properties /profile /profiles修改 application.ymlspring: profiles: active: profile.name3.构建项⽬并打包在本地使⽤maven进⾏打包如果Test代码中有与环境配置相关的操作(⽐如数据库相关的操作),打包会失败,点击下图①处的图标,可以跳过测试点击clean-package出现这个就是打包成功4.上传Jar包到服务器,并运⾏4.1. 上传Jar包直接拖动打好的jar包到xshell窗即可完成⽂件的上传Xshell可以直接拖动⽂件到窗,达到上传⽂件的⽬的,如果使⽤其他客⼾端,不⽀持⽂件的上传,需要借助lrzsz命令1.上传文件sz filename2.下载文件rz执⾏该命令后在弹出框中选择要上传的⽂件即可,上传的速度取决于⽹络.问题:如果执⾏上述命令之后,提⽰ Command ‘XX’ not found ,表⽰当前云服务器未安装lrzsz命令,需要先进⾏安装3. 安装lrzszapt-get install lrzsz4.2 运行程序nohup java -jar blog-spring-0.0.1-SNAPSHOT.jar nohup:后台运⾏程序.⽤于在系统后台不挂断地运⾏命令退出终端不会影响程序的运⾏.语法格式:nohup Command [ Arg … ] [ ] 参数说明: Command要执⾏的命令。 Arg⼀些参数可以指定输出⽂件 让命令在后台执⾏终端退出后命令仍旧执⾏ ⽐如: nohup java -jar blog-0.0.1-SAPSHOT.jar /logs **Linux可以通过 把需要输出的内容写到指定⽂件中.这样的操作称为重定向.**4.3 开放端口号如果外⽹需要访问该服务,需要先服务器防⽕墙开放对应的端⼝号本着服务器安全的原则云服务器上的端⾮必要不开启.⽐如常⻅端号:数据库3306,Redis6379,尽可能避免开放,⽽是采⽤其他⽅式来接,⽐如配置隧道的⽅式5.验证程序访问项目需要改云服务的ip 和端口号按照项⽬的功能进⾏验证• 验证账⼾注册登录• 验证展⽰博客列表• 验证新增博客• 验证展⽰博客内容• …6. 常见问题⼀个程序的正常运⾏,需要程序的正确和环境的正确.同样的代码在Windows上可以运⾏成功,不⼀定在Linux上运⾏成功.不同的系统对代码的理解和⽀持是不的.⽐如Windows系统对MySQL不区分⼤⼩写,Linux区分⼤⼩写服务不能正常访问的原因有很多,主要分以下⼏⽅⾯服务未启动a. 使⽤ps -ef|grep java查看程序是否在运⾏b. 使⽤curl 自己的链接看下是否有返回html⻚⾯,如果有返回,说明程序启动成功了,考虑端未开放c. 如果未启动成功,需要查看对应的⽇志,根据原因来分析.i. 数据库不存在ii. 表不存在(区分⼤⼩写)iii. 数据库密码不正确iv. Jdk安装版本不对,或者未安装v. mysql未设置密码vi. …http端未开放检查云服务器防⽕墙/安全组是否开放相应端⼝(如8080)7. 杀掉进程如果我们需要重启服务,或者重新部署等,都需要先停⽌之前的服务查看当前服务的进程ps -ef|grep java上图35443就是该服务的进程.2. 杀掉进程kill -9 PID8.总结连接Linux服务器的⽅式有很多,xshell只是其中⼀种.xshell是⼀个客⼾端,⽽⾮服务器.Ubuntu软件管理⼯具是apt,他的linux发⾏版本软件包管理⼯具不同,⽐如CentOS是使⽤yum来管理软件的SpringBoot可以使⽤多个配置⽂件来完成不同平台的配置.在Window上可以运⾏成功的代码,在Linux上不⼀定能运⾏成功.启动程序需要使⽤nohup后台运⾏,需要停⽌服务时,使⽤kill命令

相关新闻

PCB标签定制公司发展现状、痛点与前景深度分析

PCB标签定制公司发展现状、痛点与前景深度分析

《PCB标签定制公司发展现状、痛点与前景深度分析》在科技飞速发展的当下,PCB标签定制市场随着电子设备、工业自动化等行业的繁荣而不断扩大。然而,行业发展并非一帆风顺,众多PCB标签定制公司面临着诸多难题,用户也常常在采购过程中…

2026/7/30 7:01:54 阅读更多
月之暗面放出 Kimi K3 完整权重,Mac 本地运行潜力几何?

月之暗面放出 Kimi K3 完整权重,Mac 本地运行潜力几何?

社区反应迅速月之暗面放出 Kimi K3 完整权重之后,社区动作比预想快,“在 M1 Max 上跑 Kimi K3”的帖子今天登上了 Hacker News 首页。Deltafin 项目支持本地运行这是一个名为“Deltafin”的小型研究项目,支持在 Apple Silicon Mac 上本地运行…

2026/7/30 7:01:54 阅读更多
靠谱的医疗垃圾焚烧炉生产厂家

靠谱的医疗垃圾焚烧炉生产厂家

在当今社会,医疗行业不断发展,医疗垃圾的处理成为了一个至关重要的问题。医疗垃圾如果处理不当,不仅会对环境造成严重污染,还可能引发疾病传播,威胁公众健康。因此,选择一家靠谱的医疗垃圾焚烧炉生产厂家至…

2026/7/30 7:51:55 阅读更多
大模型推理框架:从CoT到ToT的技术演进与实践

大模型推理框架:从CoT到ToT的技术演进与实践

1. 大模型推理框架概述:从基础范式到前沿探索 大模型推理框架正在经历从单一问答到复杂决策的范式跃迁。不同于传统NLP任务的端到端处理,现代推理框架更强调模仿人类认知的渐进式思考过程。以GPT-4、Claude等为代表的千亿级参数模型,其真正的…

2026/7/30 7:51:55 阅读更多
[GESP202606 四级] 扫雷

[GESP202606 四级] 扫雷

B4557 [GESP202606 四级] 扫雷 https://www.luogu.com.cn/problem/B4557 中国计算机学会(CCF)2026年6月C四级讲解——扫雷 https://www.bilibili.com/video/BV1MCMg6AEXR/ B4557 [GESP202606 四级] 扫雷 https://www.bilibili.com/video/BV1ZKTj6ZEVh/ 2…

2026/7/30 0:01:06 阅读更多