使用Ubuntu搭建Java部署环境_ubuntu安装java环境,零基础入门到精通,收藏这篇就够了


在Ubuntu下搭建Java部署环境需要使用到apt命令

apt命令(用于安装、更新、删除、查询软件包)

语法:

apt [命令] [软件包名称]

接下来我们来搭建Java部署环境

使用apt安装JDK

更新软件包列表

我们先更新软件包列表

apt-get update

Ubuntu仓库的软件不一定和软件包官网的版本一样, 如果有需求可以自定义下载, 不使用配置仓库的软件包

安装openJDK

步骤:

  • 查找jdk: 使用 apt list |grep “jdk”
  • 安装jdk: 使用 sudo apt install openjdk-17-jdk
apt list |grep "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 文件名

安装Redis

. 更新软件包列表

sudo apt update

2. 安装 Redis

sudo apt install redis-server

3. 启动 Redis 服务

安装完成后,Redis 默认会自动启动。 手动启动或重启服务:

启动:sudo systemctl start redis

service redis-server start

重启:sudo systemctl restart redis

service redis-server restart

4. 设置开机自启动

update-rc.d redis-server enable

5. 检查 Redis 状态

service redis-server status

正常会显示active (running)

停止 Redis 服务命令

service redis-server stop

准备工作

我们需要把本地的项目上传到服务器上, 需要做点准备工作

1. 上传文件到服务器需要通过 rz 命令上传

但是ubuntu 没有内置上传命令(rz), 我们需要通过指令下面指定安装
apt-get install lrzsz

安装完之后, 我们可以把本地文件上传到服务器上, 也可以将服务器的文件下载到本地

经过以上的步骤, 我们服务器的项目环境就部署好了,

下面就可以把我们本地的项目上传到服务器上了,

上线之间需要进行小小的修改

修改程序的配置文件

Spring Boot 默认使用application.ymlapplication.properties来加载全局配置。如果要为不同的环境创建配置文件,可以命名为以下格式:

  • application.yml
  • application-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=false username: root password: root driver-class-name: com.mysql.cj.jdbc.Driver # ?? mybatis xml ??????? resources/mapper ?????? xml ?? mybatis: mapper-locations: classpath:mapper/**Mapper.xml configuration: map-underscore-to-camel-case: true #???????? log-impl: org.apache.ibatis.logging.stdout.StdOutImpl logging: file: name: spring-book.log

这两个文件设置好了, 就可以通过application.yml指定要激活的环境配置文件

在POM.XML文件自定义变量: dev 和 prod, 这样打包时就可以自主选择打包环境了

<profiles> <profile> <id>dev</id> <properties> <profile.name>dev</profile.name> </properties> </profile> <profile> <id>prod</id> <properties> <profile.name>prod</profile.name> </properties> </profile> </profiles>

下面的放在标签里面

<!--确保配置文件被加载--> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> <includes> <include>**/**</include> </includes> </resource> </resources>

application.yml文件代码如下:

spring: profiles: active: @profile.name@ #pom定义的变量

使用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区分大小写服务不能正常访问的原因有很多,主要分以下几方面:

  1. 服务未启动
    使用 ps -ef|grep java查看程序是否在运行
    curl http://127.0.0.1:8080/你的网页名.html看下是否有返回html页面,
    如果有返回,说明程序启动成功了,考虑端口未开放
    如果未启动成功,需要查看对应的日志,根据原因来分析.
  2. 数据库不存在
  3. 表不存在(区分大小写)
  4. 数据库密码不正确
  5. Jdk 安装版本不对,或者未安装
  6. mysql未设置密码
  7. http端口未开放: 检查云服务器防火墙/安全组是否开放相应端口(如8080)

Java开发的就业市场正在经历结构性调整,竞争日益激烈

传统纯业务开发岗位(如仅完成增删改查业务的后端工程师)的需求,特别是入门级岗位,正显著萎缩。随着企业技术需求升级,市场对Java人才的要求已从通用技能转向了更深入的领域经验(如云原生、微服务)或前沿的AI集成能力。这也导致岗位竞争加剧,在一、二线城市,求职者不仅面临技术内卷,还需应对学历与项目经验的高门槛。

大模型为核心的AI领域正展现出前所未有的就业热度与人才红利

2025年,AI相关新发岗位数量同比激增543%,单月增幅最高超过11倍,大模型算法工程师位居热门岗位前列。行业顶尖人才的供需严重失衡,议价能力极强,跳槽薪资涨幅可达30%-50%。值得注意的是,市场并非单纯青睐算法研究员,而是急需能将大模型能力落地于复杂业务系统的工程人才。这使得具备企业级架构思维和复杂系统整合经验的Java工程师,在向“Java+大模型”复合人才转型时拥有独特优势,成为企业竞相争夺的对象,其薪资天花板也远高于传统Java岗位。

说真的,这两年看着身边一个个搞Java、C++、前端、数据、架构的开始卷大模型,挺唏嘘的。大家最开始都是写接口、搞Spring Boot、连数据库、配Redis,稳稳当当过日子。

结果GPT、DeepSeek火了之后,整条线上的人都开始有点慌了,大家都在想:“我是不是要学大模型,不然这饭碗还能保多久?”

先给出最直接的答案:一定要把现有的技术和大模型结合起来,而不是抛弃你们现有技术!掌握AI能力的Java工程师比纯Java岗要吃香的多。

即使现在裁员、降薪、团队解散的比比皆是……但后续的趋势一定是AI应用落地!大模型方向才是实现职业升级、提升薪资待遇的绝佳机遇!

如何学习AGI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2025最新版CSDN大礼包:《AGI大模型学习资源包》免费分享**

一、2025最新大模型学习路线

一个明确的学习路线可以帮助新人了解从哪里开始,按照什么顺序学习,以及需要掌握哪些知识点。大模型领域涉及的知识点非常广泛,没有明确的学习路线可能会导致新人感到迷茫,不知道应该专注于哪些内容。

我们把学习路线分成L1到L4四个阶段,一步步带你从入门到进阶,从理论到实战。

L1级别:AI大模型时代的华丽登场

L1阶段:我们会去了解大模型的基础知识,以及大模型在各个行业的应用和分析;学习理解大模型的核心原理,关键技术,以及大模型应用场景;通过理论原理结合多个项目实战,从提示工程基础到提示工程进阶,掌握Prompt提示工程。

L2级别:AI大模型RAG应用开发工程

L2阶段是我们的AI大模型RAG应用开发工程,我们会去学习RAG检索增强生成:包括Naive RAG、Advanced-RAG以及RAG性能评估,还有GraphRAG在内的多个RAG热门项目的分析。

L3级别:大模型Agent应用架构进阶实践

L3阶段:大模型Agent应用架构进阶实现,我们会去学习LangChain、 LIamaIndex框架,也会学习到AutoGPT、 MetaGPT等多Agent系统,打造我们自己的Agent智能体;同时还可以学习到包括Coze、Dify在内的可视化工具的使用。

L4级别:大模型微调与私有化部署

L4阶段:大模型的微调和私有化部署,我们会更加深入的探讨Transformer架构,学习大模型的微调技术,利用DeepSpeed、Lamam Factory等工具快速进行模型微调;并通过Ollama、vLLM等推理部署框架,实现模型的快速部署。

整个大模型学习路线L1主要是对大模型的理论基础、生态以及提示词他的一个学习掌握;而L3 L4更多的是通过项目实战来掌握大模型的应用开发,针对以上大模型的学习路线我们也整理了对应的学习视频教程,和配套的学习资料。

二、大模型经典PDF书籍

书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础(书籍含电子版PDF)

三、大模型视频教程

对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识

四、大模型项目实战

学以致用,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

五、大模型面试题

面试不仅是技术的较量,更需要充分的准备。

在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。


因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2025最新版CSDN大礼包:《AGI大模型学习资源包》免费分享

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1159456.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人工造问卷 VS 宏智树 AI:告别 “无效调研”,学术问卷设计原来可以这么简单

作为深耕论文写作科普的教育博主&#xff0c;后台总能收到这样的求助&#xff1a;“花 3 天设计的问卷&#xff0c;导师说信效度为零”“发出去 200 份问卷&#xff0c;150 份数据无效”“量表题项照搬&#xff0c;结果被批缺乏学术逻辑”。实证类论文的核心是数据&#xff0c;…

永磁同步电机反步控制实战手记

永磁同步电机反步(backstepping)控制 1.采用非线性控制策略反步控制法&#xff0c;实现永磁同步电机系统的完全解耦&#xff0c;相比PI控制减少了系统调节参数&#xff0c;抗负载扰动能力明显提高&#xff1b; 2.提供算法对应的参考文献和仿真模型 购买赠送PMSM控制相关电子资料…

JAVA实战:学生选课管理系统_java学生选课管理系统,零基础入门到精通,收藏这篇就够了

一.学生选课管理系统简介 首先定义了两个类&#xff1a;Student和Course。Student类表示学生&#xff0c;包含学生的姓名、学号和已选修的课程列表。Course类表示课程&#xff0c;包含课程的编号、名称和选修该课程的学生列表。 在Student类中&#xff0c;定义了构造方法用于…

【毕业设计】基于深度学习卷积神经网络训练识别橘子是否新鲜基于python_CNN深度学习卷积神经网络训练识别橘子是否新鲜

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

宏智树 AI 数据分析:文科生也能玩转硬核实证,论文说服力翻倍!

作为专注论文写作科普的教育博主&#xff0c;后台总能收到这样的求助&#xff1a;“论文数据一大堆&#xff0c;却不知道怎么分析”“SPSS 操作太复杂&#xff0c;文科生表示看不懂”“数据结果不会可视化&#xff0c;论文干巴巴没说服力”…… 其实&#xff0c;论文数据分析根…

Hadoop Formats 在 Flink 里复用 Hadoop InputFormat(flink-hadoop-compatibility)

1、项目依赖配置 核心依赖是 Flink 的兼容模块&#xff1a; <dependency><groupId>org.apache.flink</groupId><artifactId>flink-hadoop-compatibility</artifactId><version>2.2.0</version> </dependency>如果你要在本地&a…

宏智树 AI:期刊论文投稿通关密码!从选题到见刊的智能加速器

作为深耕论文写作科普的教育博主&#xff0c;后台每天都被 “期刊论文投稿被拒 N 次”“选题不对口”“格式反复改” 的吐槽刷屏。很多科研人明明手握优质研究成果&#xff0c;却因踩中选题偏差、文献不规范、格式混乱等 “隐形雷区”&#xff0c;陷入投稿屡败的困境。而宏智树…

深度学习毕设项目:基于python_CNN深度学习训练识别橘子是否新鲜基于python_CNN深度学习卷积神经网络训练识别橘子是否新鲜

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

零代码开发平台有哪些?

在数字化转型的浪潮中&#xff0c;业务部门对敏捷、定制化软件工具的需求与日俱增&#xff0c;但传统的开发流程却受限于高昂的成本和漫长的周期。零代码开发平台正是在此背景下应运而生的解决方案。它指的是一种允许用户通过完全可视化的拖拽、配置和规则设定&#xff0c;无需…

宏智树 AI:课程论文写作 “开挂神器”!告别凑字数,轻松搞定高分作业

每到期末季&#xff0c;课程论文就成了大学生的 “甜蜜负担”—— 想认真写却抓不住选题方向&#xff0c;凑够字数又担心逻辑混乱&#xff0c;查重时更是被飘红的段落搞得焦头烂额。作为深耕论文写作科普的教育博主&#xff0c;今天就给大家安利一款课程论文 “救星”—— 宏智…

【课程设计/毕业设计】基于卷积神经网络训练识别橘子是否新鲜基于python_CNN深度学习卷积神经网络训练识别橘子是否新鲜

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

【2026必看】AI Agent完全指南:从零掌握大模型核心架构,建议收藏学习

AI Agent是2026年AI生态核心&#xff0c;具备自主决策和执行能力&#xff0c;通过感知、规划、行动、记忆和反思五大组件实现闭环架构。A2A协议使不同Agent能协作分工&#xff0c;MCP标准化工具调用&#xff0c;Agent Skills模块化能力构建。这些技术大幅降低开发门槛&#xff…

家庭食谱管理系统 Recipes 怎么搭?用服务器自建一个“全家共享”的菜谱库

🥬 买菜靠感觉,回家才发现缺关键食材 📱 菜谱收藏在各个平台:小红书一份、B站一份、浏览器书签一堆 🧠 想复刻某次做成功的菜,翻半天找不到当时那份步骤 👨‍👩‍👧‍👦 家里人各自保存各自的,根本没法共享、也没法统一整理 后来我干脆一步到位:在服务器上…

HG_REPMGR autofailvoer自动故障转移

文章目录 文档用途详细信息 文档用途 HG_REPMGR自动故障转移配置参考 详细信息 配置集群自动故障转移&#xff08;failover&#xff09;&#xff0c;需要为集群中的每个节点开启 repmgrd 守护进程。当主节点出现故障后&#xff0c;会自动将合适的备节点提升为新主节点&#…

2026年网络安全学习路线,零基础入门到精通,看这篇就够了!赶紧收藏!

针对2025年网络安全领域的学习路线规划&#xff0c;结合当前技术趋势和未来发展方向&#xff0c;帮助你从入门到进阶&#xff0c;逐步掌握网络安全的核心技能。 一、基础阶段&#xff08;3-6个月&#xff09; 目标&#xff1a;建立计算机基础与安全意识 1. 计算机基础 学习…

【必看收藏】RAG分块策略全解析:从入门到精通,解决大模型企业应用痛点

RAG技术通过结合检索与生成&#xff0c;解决大模型在企业应用中的局限性&#xff0c;分块策略是其核心环节。文章详细分析了五种分块策略&#xff08;固定大小、语义、递归、基于文档结构、基于LLM&#xff09;的原理、优缺点及适用场景&#xff0c;强调需根据文档类型和应用需…

【2026年最新整理】网络安全学习路线,入门到入坟,史上最全网络安全学习路线整理

很多小伙伴在网上搜索网络安全时&#xff0c;会出来网络安全工程师这样一个职位&#xff0c;它的范围很广&#xff0c;只要是与网络安全挂钩的技术人员都算网络安全工程师&#xff0c;一些小伙伴就有疑问了&#xff0c;网络安全现在真的很火吗&#xff1f; 那么寒哥就带大家看…

MySQL JOIN语法深度解析:从理论到实践的完整指南

目录 一、JOIN的本质与数学基础 二、内连接&#xff08;INNER JOIN&#xff09;的深层机制 三、外连接的完整语义解析 四、特殊连接类型的适用场景 五、JOIN性能优化的核心原则 六、JOIN与事务处理的交互影响 七、高级JOIN技术的实践应用 八、JOIN设计的最佳实践 结语 …

CSV Format Flink / PyFlink 读写 CSV 的正确姿势(含 Schema 高级配置)

1、依赖引入 Java/Scala 工程需要加 Flink CSV 依赖&#xff1a; <dependency><groupId>org.apache.flink</groupId><artifactId>flink-csv</artifactId><version>2.2.0</version> </dependency>PyFlink 用户一般可以直接在作…

直流母线电压采集与缓冲调理电路

一、电路类型与原理 这是一个直流母线电压采集与缓冲调理电路,主要功能是将高压直流母线(如 48V)分压后,通过运放构成的电压跟随器进行缓冲,再送入 ADC 进行精确采样。 分压网络:R38(240kΩ)和 R41(20kΩ)组成电阻分压,将 48V 输入按比例降到 3V 左右,满足后续 AD…