Linux

简介: 本文介绍如何将一个简单的SpringBoot应用打包并部署到Linux服务器。包括项目搭建、JAR包打包、JDK安装配置、应用上传与启动,以及通过心跳接口验证服务是否正常运行的完整流程,适用于Java应用的Linux部署入门学习。

1.系统打包

为方便测试,这里我以一个简单的SpringBoot工程为例,工程中预留了一个心跳健康检查接口

即后续可以通过访问这个接口,感知应用是否健康,如果有正常返回即说明工程成功部署

工程搭建

如不想0-1搭建,也可直接采用这个:📎LinuxDemo.zip

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.yzxb</groupId>
    <artifactId>linux</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>linux</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <spring-boot.version>2.6.13</spring-boot.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <build>
        <finalName>linuxDemo</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>${spring-boot.version}</version>
                <configuration>
                    <mainClass>cn.yzxb.linux.LinuxApplication</mainClass>
                </configuration>
                <executions>
                    <execution>
                        <id>repackage</id>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

启动类

package cn.yzxb.linux;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class LinuxApplication {
    public static void main(String[] args) {
        SpringApplication.run(LinuxApplication.class, args);
        System.out.println("Linux run success");
    }
}

controller

package cn.yzxb.linux.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("heart")
public class LinuxController {
    @GetMapping
    public String heartBeat() {
        return "I'm OK";
    }
}

应用打包

2.上传应用

找到上述打包路径所在的jar文件,借助于xshell或finalshell等工具,上传至自己指定的路径即可

应用启动前,请确保你已正确安装对应版本的JDK,如未安装可参照下述操作

1.上传JDK

📎jdk-8u271-linux-x64.tar.gz

2.安装JDK

  • 在jdk所在目录解压即可:tar -zxvf jdk-8u271-linux-x64.tar.gz

3.配置JAVA_HOME(注意JAVA_HOME路径)

  • vim /etc/profile

export JAVA_HOME=/tmp/linux/jdk1.8.0_271

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH

export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin

export PATH=$PATH:${JAVA_PATH}

  • source /etc/profile

4.验证JDK

  • source /etc/profile

3.启动应用

4.验证心跳

相关文章
|
10月前
|
消息中间件 Java Spring
MQ收发消息
本文介绍如何使用SpringAMQP实现RabbitMQ消息收发。RabbitMQ基于AMQP协议,支持跨语言通信。通过SpringBoot整合SpringAMQP,可快速实现消息发送与接收。文中演示了创建队列、配置生产者与消费者、使用RabbitTemplate发送消息及@RabbitListener监听消息的完整流程,并简要对比了推模式与拉模式的应用场景。
MQ收发消息
|
SQL druid Java
springboot +logback+阿里数据源(druid)打印sql日志以及简化日志输出方式
springboot +logback+阿里数据源(druid)打印sql日志以及简化日志输出方式
3765 0
|
8月前
|
Linux C语言 C++
CentOS 7 安装 gcc-4.8.5-44.el7.x86_64.rpm 详细步骤(含依赖解决)
本指南详解CentOS 7离线安装GCC 4.8.5全流程:先卸载旧版避免冲突,再下载对应RPM包;安装glibc-devel、mpfr等必要依赖;最后用rpm或yum localinstall完成安装,并验证版本。操作清晰,兼顾强制覆盖与自动依赖解决,适配老旧项目编译需求。(239字)
1719 15
|
9月前
|
Java 数据库连接 分布式数据库
技术揭秘:异构数据源同步工具如何隔离加载驱动依赖
在异构数据源同步需求中,需要支持多种数据库连接器,每种数据源对应的 Reader 或 Writer 插件往往依赖不同的第三方库(如不同版本的 JDBC 驱动、HBase 客户端等)。如果将所有插件及其依赖统一加载到同一个 ClassLoader 中,极易引发 依赖冲突(例如:两个插件依赖不同版本的 commons-lang)。
323 3
|
5月前
|
运维 监控 网络协议
排障本身不慢,MTTR却一直降不下来?时间都耗在这三个流程断点上
本文剖析MTTR居高不下的三大非技术断点:信息传递失真、工单推进停滞、跨部门信号断档。指出问题本质是流程链路断裂,而非排障能力不足,并给出低成本、可落地的三步改进方案:加推进超时提醒、标准化服务台字段、打通业务上报与端到端探测。(239字)
611 1
排障本身不慢,MTTR却一直降不下来?时间都耗在这三个流程断点上
|
10月前
|
运维 监控 Java
【Linux基础】开发日常:盘点后端开发中最高频使用的10个Linux命令
本文为后端开发者整理了日常运维中最常用的10个Linux命令,涵盖文件查看、日志监控、进程管理、网络排查等核心场景。从`ls`、`cd`到`tail`、`grep`,再到`ps`、`netstat`、`top`等,结合实际案例讲解高频用法,助你高效应对服务器操作,提升开发效率。
|
9月前
|
安全 Shell Linux
Linux Shell函数中的纯函数概念(小白也能掌握的函数式编程基础)
本文介绍Linux Shell脚本中“纯函数”的概念与实践,强调其输入确定、无副作用的特性,通过对比示例讲解如何编写可预测、可复用、高可靠性的纯函数,提升脚本质量。
|
5月前
|
人工智能 供应链 安全
2026 年全球网络安全威胁态势与关键技术防御研究
本文基于Security Affairs 2026年第576期情报,系统分析Linux无文件远控(QLNX)、Dirty Frag内核提权、AI供应链投毒、Bluekit工业化钓鱼及关键基础设施混合攻击等新型威胁,揭示其内存化、智能化、武器化趋势;提出漏洞治理、供应链管控、钓鱼防御、终端加固、应急响应“五位一体”纵深防御框架,并提供可复现代码与工程化方案。(239字)
982 6
|
9月前
|
网络协议 安全 数据建模
免费SSL 证书怎么申请?2026年阿里云 SSL 证书申请全流程(新手教程)
阿里云免费 SSL 证书申请核心是 “确认域名归属”,整个流程约半小时,关键在于仔细核对信息、正确添加解析记录。若仅用于测试或临时场景,免费证书足够;正式业务网站(尤其是涉及登录、支付),建议升级为有效期更长、功能更全的正式证书(如 DV、OV 证书)。定期检查证书到期时间,及时更新,才能持续保障网站数据传输安全。
|
10月前
|
弹性计算 运维 监控
【运维排查】服务器CPU飙升100%?别慌,教你3步精准定位“罪魁祸首”
当服务器CPU飙高时,别急着重启!本文教你四步精准排查:用`top`定位高占用进程,`top -Hp`找出耗CPU线程,`printf`转十六进制,再通过`jstack`结合线程ID定位到具体代码行。快速锁定死循环、频繁GC或复杂计算等问题根源,成为团队中的故障排查高手。