使用Ubuntu搭建Java部署环境
🙉专栏推荐:Java入门知识🙉
🐹今日诗词:小舟从此逝,江海寄余生🐹
⛳️点赞 ☀️收藏⭐️关注💬卑微小博主🙏
⛳️点赞 ☀️收藏⭐️关注💬卑微小博主🙏

在Ubuntu下搭建Java部署环境需要使用到apt命令
apt命令(用于安装、更新、删除、查询软件包)
语法:
apt [命令] [软件包名称]
接下来我们来搭建Java部署环境
使用apt安装JDK
更新软件包列表
我们先更新软件包列表
Ubuntu仓库的软件不一定和软件包官网的版本一样, 如果有需求可以自定义下载, 不使用配置仓库的软件包
安装openJDK
步骤:
- 查找jdk: 使用 apt list |grep "jdk"
- 安装jdk: 使用 sudo apt install openjdk-17-jdk
查找jdk
apt list |grep "jdk"
安装jdk
sudo apt install openjdk-17-jdk
使用apt安装MySQL
查找安装包
命令:
apt list | grep "mysql-server"
安装MySQL
命令:
sudo apt install mysql-server输入命令, enter安装, 接下来会有选择让我们选择
查看MySQL状态
命令
sudo systemctl status mysql
MySQL安全设置
默认安装的MySQL设置是不安全的, 数据被盗了就老实了, 因此MySQL提供了一个安全脚本
命令:
sudo mysql_secure_installation接下来也有许多选项, 除了第二个选项选择数字2, 其他都选择Y
选项1.
选项2.
剩下全选择: Y
设置密码
先连接MySQL服务器
命令:
sudo mysql修改密码命令:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码'
大小写都要有
退出数据库: 安装完毕, 退出数据库回到主机页面的命令是
exit
如何连接MySQL数据库?
连接数据库命令:
mysql -uroot -p
这个是隐式输入, 看不见输入的东西
然后把你的数据库代码导出来, 文件后缀是.sql, 最后放到服务器中
或者在服务器中执行sql语句也是可以的
执行sql文件的命令
source 文件名
部署Web项目到Linux
准备工作
我们需要把本地的项目上传到服务器上, 需要做点准备工作
1. 上传文件到服务器需要通过 rz 命令上传
但是ubuntu 没有内置上传命令(rz), 我们需要通过指令下面指定安装
apt-get install lrzsz安装完之后, 我们可以把本地文件上传到服务器上, 也可以将服务器的文件下载到本地
经过以上的步骤, 我们服务器的项目环境就部署好了,
下面就可以把我们本地的项目上传到服务器上了,
上线之间需要进行小小的修改
修改程序的配置文件
Spring Boot 默认使用
application.yml或application.properties来加载全局配置。如果要为不同的环境创建配置文件,可以命名为以下格式:
application.ymlapplication-dev.yml(开发环境)application-prod.yml(生产环境)下面是原本的application.yml内容, 接下来复制两份分别到
application-dev.yml和application-prod.yml文件中
spring:application:name: books# ???????datasource:url: jdbc:mysql://127.0.0.1:3306/java_blog_spring?characterEncoding=utf8&useSSL=falseusername: rootpassword: rootdriver-class-name: com.mysql.cj.jdbc.Driver # ?? mybatis xml ??????? resources/mapper ?????? xml ?? mybatis:mapper-locations: classpath:mapper/**Mapper.xmlconfiguration:map-underscore-to-camel-case: true #????????log-impl: org.apache.ibatis.logging.stdout.StdOutImpl logging:file:name: spring-book.log
这两个文件设置好了, 就通过application.yml指定要激活的环境配置文件
application.yml文件代码如下:
spring:profiles:active: prod
使用Maven打包
使用Maven把项目打包成jar包的形式
点击package即可打包
它会依次执行clean->validate->compile->test->package
如果打包的过程中出错了, 大概率是test执行没通过, 像下面这样
解决办法
打包成功是这种情况
找到你打好的jar包, 然后上传到服务器上
ls查看是否上传成功
启动程序
通过指令启动我们的程序
启动程序分为前台启动和后台启动:
前台启动程序: 关闭连接就不能继续访问了
java -jar jar包名
nohup(后台持久化运行)
nohup: 用于在关闭终端时, 保持程序继续运行,
通过kill指令可以结束运行的进程
nohup java -jar 包名 &
开放端口号
开放端口号需要在你的服务器厂商那里开启, 下面以阿里云为例: 演示如何开放端口号
阿里云
观察日志(重要)
项目已经能够在线上运行了, 如果出现问题了,
学会观察日志也非常重要, 一般都是观察error日志和查看最后的日志
持续跟踪日志:
tail -f 日志文件名持续跟踪错误日志
tail -f 日志文件名 | grep "ERROR"
日志重定向
指令:
nohup java -jar 执行文件 >重定向目录 &Linux通过 > 进行重定向
日志重定向需要先关闭进程, 然后在启动的时候才能设置日志存储位置
杀死进程指令:
kill 进程号或进程名如果不知道具体的进程名, 可以先模糊查询一下, 在通过进程号杀死进程
先查看正在运行的进程:
ps -ef|grep 进程名找到进程的pid, 然后kill 进程号
常见问题
一个程序的正常运行,需要程序的正确和环境的正确.同样的代码在Windows上可以运行成功,不一定在Linux上运行成功,不同的系统对代码的理解和支持是不同的.
比如Windows系统对MySQL不区分大小写,Linux区分大小写服务不能正常访问的原因有很多,主要分以下几方面:
- 服务未启动
使用 ps -ef|grep java查看程序是否在运行
curl http://127.0.0.1:8080/你的网页名.html看下是否有返回html页面,
如果有返回,说明程序启动成功了,考虑端口未开放
如果未启动成功,需要查看对应的日志,根据原因来分析.- 数据库不存在
- 表不存在(区分大小写)
- 数据库密码不正确
- Jdk 安装版本不对,或者未安装
- mysql未设置密码
- http端口未开放: 检查云服务器防火墙/安全组是否开放相应端口(如8080)
美图分享

✨🎆谢谢你的阅读和耐心!祝愿你在编程的道路上取得更多的成功与喜悦!"🎆✨🎄
⭐️点赞收藏加关注,学习知识不迷路⭐️
🎉✔️💪🎉✔️💪🎉✔️💪🎉✔️💪🎉
👍😏⛳️点赞☀️收藏⭐️关注😏👍
👍😏⛳️点赞☀️收藏⭐️关注😏👍
👍😏⛳️点赞☀️收藏⭐️关注😏👍
🙆♂️🙆♂️🙆♂️🙆♂️🙆♂️🙆♂️🙆♂️🙆♂️🙆♂️🙆♂️🙆♂️🙆♂️🙆♂️
相关文章:
使用Ubuntu搭建Java部署环境
White graces:个人主页 🙉专栏推荐:Java入门知识🙉 🐹今日诗词:小舟从此逝,江海寄余生🐹 ⛳️点赞 ☀️收藏⭐️关注💬卑微小博主🙏 ⛳️点赞 ☀️收藏⭐️关注💬卑微小…...
MATLAB学习之旅:从入门到基础实践
在当今科技飞速发展的时代,MATLAB作为一款强大的数学软件,犹如一把神奇的钥匙,能够打开众多领域的大门。无论是工程计算、数据分析,还是算法开发、可视化呈现,MATLAB都展现出了无与伦比的魅力。今天,就让我们踏上这段奇妙的MATLAB学习之旅,从最基础的部分开始,逐步探索…...
蓝桥杯核心内容
核心内容 数学 质数与筛质数,分解质因数 分解质因数 所有的数都可以写成有限个数相乘质数:可以写成1✖本身(如131✖13)合数:ab1✖...✖bn-》把乘数里面是合数的再分(如b3是合数-》b3c1✖c2)进…...
C/C++ | 每日一练 (2)
💢欢迎来到张胤尘的技术站 💥技术如江河,汇聚众志成。代码似星辰,照亮行征程。开源精神长,传承永不忘。携手共前行,未来更辉煌💥 文章目录 C/C | 每日一练 (2)题目参考答案封装继承多态虚函数底…...
金融时间序列【量化理论】
业界常用的技术分析指标都与价格本身有关,而时间序列分析由于对数据平稳性的要求常常是基于收益率这样更加偏稳定的数据(收益率由于会涨停和跌停每天最多10%) 平稳性: 强平稳性:随时间变化,各个统计特征都…...
未来AI方向落地场景:小语言模型,super_private_agent
未来AI方向落地场景:小语言模型,super_private_agent 目录 未来AI方向落地场景:小语言模型,super_private_agent小语言模型super - private - agent(注重隐私的智能代理)碳基生命和硅基生命交互界面面向agent的专用交互协议和数据接口从web平台经济到网络平台举例说明社交…...
快速入门——第三方组件element-ui
学习自哔哩哔哩上的“刘老师教编程”,具体学习的网站为:10.第三方组件element-ui_哔哩哔哩_bilibili,以下是看课后做的笔记,仅供参考。 第一节 组件间的传值 组件可以有内部Data提供数据,也可由父组件通过prop方式传…...
数据库索引:优点、缺点及常见类型
在现代数据库管理系统中,索引是优化查询性能的关键工具。通过创建索引,可以显著减少数据检索的时间。然而,索引并不是万能的,它们也有其自身的缺点和适用场景。本文将详细介绍索引的优势、劣势以及不同类型的索引。 索引的优点 …...
Qt5 C++ TcpSocket 如何判断是服务主动断开tcp socket连接?
文章目录 实现思路示例代码代码解释主要功能和用法注意事项 在 Qt 5.9.9 的 C 开发中,使用 QTcpSocket 时,要判断是服务端主动断开 TCP Socket 连接,可以通过处理 QTcpSocket 的 disconnected 信号,结合 QTcpSocket 的状态以及…...
DeepSeek动画视频全攻略:从架构到本地部署
DeepSeek 本身并不直接生成动画视频,而是通过与一系列先进的 AI 工具和传统软件协作,完成动画视频的制作任务。这一独特的架构模式,使得 DeepSeek 在动画视频创作领域发挥着不可或缺的辅助作用。其核心流程主要包括脚本生成、画面设计、视频合成与后期处理这几个关键环节。 …...
MySQL 中的回表是什么?MySQL 中使用索引一定有效吗?如何排查索引效果?在 MySQL 中建索引时需要注意哪些事项?
MySQL 中的回表是什么? 1. 背景知识 MySQL 中有两种常见的索引: 主键索引(Primary Key Index) :唯一标识表中的每一行数据,使用 B 树结构存储。主键索引的叶子节点存储的是完整的行数据。非主键索引&…...
AI大模型有哪些常见的应用场景
图像生成 应用场景: 图像生成功能描述: 根据文本描述或参考图生成高质量图片,支持艺术、写实等多种风格。用法示例: 输入提示词(如“赛博朋克风格的城市夜景”),调整参数(分辨率、风格强度)。代表应用: 即…...
mysql实时同步到es
测试了多个方案同步,最终选择oceanu产品,底层基于Flink cdc 1、实时性能够保证,binlog量很大时也不产生延迟 2、配置SQL即可完成,操作上简单 下面示例mysql的100张分表实时同步到es,优化备注等文本字段的like查询 创…...
电力通信物联网应用,国密网关守护电力数据安全
电力国密网关是用于保护电力调度数据网路由器和电力系统的局域网之间通信安全的电力专用网关机,主要为上下级控制系统之间的广域网通信提供认证与加密服务,实现数据传输的机密性、完整性。 国密算法网关功能特点 身份认证:对接入的设备和用户…...
Datawhale Ollama教程笔记5
Dify 接入 Ollama 部署的本地模型 Dify 支持接入 Ollama 部署的大型语言模型推理和 embedding 能力。 快速接入 下载 Ollama 访问 Ollama 安装与配置,查看 Ollama 本地部署教程。 运行 Ollama 并与 Llama 聊天 ollama run llama3.1Copy to clipboardErrorCopied …...
rk3588/3576板端编译程序无法运行视频推理
图片推理可以,但是视频不行,运行视频推理报错:segment fault. 我遇到的问题原因是ffmpeg安装有问题,可以先在板端运行:ffmpeg -version ffmpeg version 4.2.4-1ubuntu1.0firefly6 Copyright (c) 2000-2020 the FFmpe…...
保姆级! 本地部署DeepSeek-R1大模型 安装Ollama Api 后,Postman本地调用 deepseek
要在Postman中访问Ollama API并调用DeepSeek模型,你需要遵循以下步骤。首先,确保你有一个有效的Ollama服务器实例运行中,并且DeepSeek模型已经被加载。 可以参考我的这篇博客 保姆级!使用Ollama本地部署DeepSeek-R1大模型 并java…...
vue语法---样式操作-类名样式
直接写死 <template><div class"box"></div></template><script >export default{data() {return {}},methods:{}, mounted(){},} </script><style lang"css">.box{color: red;font-size: 30px;} </style&g…...
ASP.NET Core 下载文件
本文使用 ASP .NET Core,适用于 .NET Core 3.1、.NET 5、.NET 6和.NET 8。 另请参阅: 如何在将文件发送到浏览器后自动删除该文件。 如何将文件从浏览器上传到服务器。 如何在 ASP.NET Core 应用程序中从 URL/URI 下载文件。 如果使用.NET Framework&am…...
【信息系统项目管理师-案例真题】2022下半年案例分析答案和详解
更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 试题一(24分)【问题1】(6分)【问题2】(10分)【问题3】(8分)试题二(26分)【问题1】(8分)【问题2】(8分)【问题3】(4分)【问题4】(6分)试题三(25分)【问题1】(12分)【问题2】(7分)【问题…...
原来DeepSeek还能运用在系统集成-领星对接
在当今数字化转型的浪潮中,企业的信息化建设已成为提升运营效率、优化管理流程的关键。领星ERP与金蝶云星空作为两款在电商和财务管理领域广受欢迎的软件,其数据对接对于跨境电商企业来说尤为重要。本文将结合实际应用场景,深度解析如何通过轻…...
在windows下安装windows+Ubuntu16.04双系统(上)
这篇文章的内容主要来源于这篇文章,给文章很详细的介绍了如何从windows下安装windowsubuntu16.04双系统。我刚开始装双系统都是参照这个方法,该作者前后更新了两个版本,在这里对其稍微进行整理一下。 一、准备:(这里推…...
第37章 合作之路与占坑成功
在春寒料峭的时节,那丝丝寒意宛如一缕缕若有若无的轻烟,在空气中悄然弥漫。锐创所的会议室,宛如一个被岁月尘封的神秘空间,暖黄色的灯光晕染开来,像是为整个房间披上了一层朦胧的薄纱,陈旧却又带着几分温馨…...
杰和科技GAM-AI视觉识别管理系统,让AI走进零售营销
在数字化浪潮席卷全球零售业的今天,如何精准触达顾客需求、优化运营效率、提升门店业绩,成为实体商业破局的关键。 GAM-AI视觉识别管理系统 杰和科技智能零售管理系统:GAM-AI视觉识别管理系统,以AI视觉识别大数据分析边缘计算为核…...
golang内存泄漏
golang也用了好几年了,趁着有空 整理归纳下,以后忘了好看下 一般认为 Go 10次内存泄漏,8次goroutine泄漏,1次是真正内存泄漏,还有1次是cgo导致的内存泄漏 1:环境 go1.20 win10 2:goroutine泄漏 单个Goroutine占用内存&…...
Redis存储⑩Redis的事务_弱化的原子性
目录 1. MySQL和Redis事务的区别 1.1 MySQL的事务 1.2 Redis的事务 2. Redis事务操作 2.1 MULTI multi 2.2 EXEC exec 2.3 DISCARD discard 2.4 WATCH 1. MySQL和Redis事务的区别 1.1 MySQL的事务 MySQL事务复习: MySQL数据库⑨_事务(四个属性…...
基于Flask的京东商品信息可视化分析系统的设计与实现
【Flask】基于Flask的京东商品信息可视化分析系统的设计与实现(完整系统源码开发笔记详细部署教程)✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 系统能够灵活地执行SQL查询,提取出用于分析的关键数据指标。为了将这…...
QML ToolButton与DelayButton的使用、详解与自定义样式
QML MenuBarItem与MenuItem的使用、详解与自定义样式 一、介绍1、ToolButton常见用法基础示例设置图标 常用属性texticonenabledshortcutcheckable & checked 信号onClickedonPressed 和 onReleased 样式和外观使用场景 2、DelayButton使用场景核心属性1. delay 核心信号1.…...
数据结构:动态数组vector
vector 是 C 标准库的动态数组。 在C语言中一般初学者会使用malloc,int[n]等方式来创建静态数组,但是这种方式繁琐且容易出错。我们做算法题一般使用动态数组vector, 并且在刷题网站的题目给的输入一般也是vector类型。 示例:vect…...
JSON格式,C语言自己实现,以及直接调用库函数(一)
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。以下为你提供不同场景下常见的 JSON 格式示例。 1. 简单对象 JSON 对象是由键值对组成,用花括号 {} 包裹&…...























