如何部署一个Java项目

如何部署一个Java项目

部署 Java 项目通常需要考虑项目类型(如普通 Java 应用、Spring Boot 应用、Web 应用等)、运行环境和部署策略。以下是常见的 Java 项目部署方法:

1. 普通Java应用(Jar包形式)

适用于控制台应用、服务类应用等,通常通过java -jar命令运行。

部署步骤

  1. 打包项目使用 Maven 或 Gradle 将项目打包为可执行 Jar:

    • Maven:mvn clean package(生成在target/目录)
    • Gradle:gradle clean build(生成在build/libs/目录)
  2. 上传Jar包到服务器 通过scp、FTP 或工具(如 Xftp)将 Jar 包传到目标服务器。

  3. 运行Jar包

    bash 复制代码
    # 直接运行(控制台关闭后程序终止)
    java -jar your-project.jar
    
    # 后台运行(推荐)
    nohup java -jar your-project.jar > app.log 2>&1 &
    
    # 指定JVM参数(如内存设置)
    nohup java -Xms512m -Xmx1024m -jar your-project.jar > app.log 2>&1 &
  4. 停止程序

    bash 复制代码
    # 查找进程ID
    ps -ef | grep your-project.jar
    
    # 终止进程
    kill -9 进程ID
    `

使用idea将项目打成Jar包

在我们没有学习Maven和Gradle之前,我们先来使用idea将项目打成Jar包。

创建项目

首先我们创建一个项目MyProject

创建项目,给项目起名,使用idea,JDK1.8,确定。

创建完成之后的结构目录如下:

标准的Java项目目录结构

java 复制代码
MyProject/
├── .idea/             # IntelliJ IDEA项目配置
├── out/               # 编译输出目录
├── src/               # 源代码目录
│   ├── main/
│   │   ├── java/      # Java源代码
│   │   └── resources/ # 资源文件
│   └── test/          # 测试代码
├── .gitignore         # Git忽略文件
├── MyProject.iml      # IntelliJ模块文件
└── jar/               # JAR文件目录(如果有)

我们在Main中写入:

java 复制代码
public class Main {
    public static void main(String[] args) {

        System.out.println("Hello, World!");
    }
}

将项目打成jar包

选择工件,加号,jar,从具有依赖项的模块,选择主类main,确定,更改路径输出到当前目录

确定之后,将输出目录选在当前目录,即:删除out之后的内容,包含out

构建

完成之后会在当前目录内生成一个jar包。

部署项目

将此jar包,上传到有java环境的地方,我这准备了一台Ubuntu2024虚拟机,这里为了方便演示,直接安装默认的JDK

bash 复制代码
sudo apt install default-jdk
java -version
javac -version

将本地打好的jar包上传到Ubuntu运行

bash 复制代码
pokes@userver:~$ java -jar MyProject.jar 
Hello, World!

虽然一瞬间就运行完了,但是这个过程我们要会。

相关推荐
小bo波7 小时前
使用Thread子类创建线程 VS 使用Runnable接口创建线程的区别
java·多线程·thread·并发编程·runnable
SamDeepThinking7 小时前
高并发场景下,CompletableFuture与ForkJoinPool该如何取舍?
java·后端·面试
张不才10 小时前
CPU 100% 了怎么办?Java 性能排障的标准化操作
java·后端
shepherd11112 小时前
吞吐量提升 10 倍:高并发大批量数据处理任务的架构演进与性能调优
java·后端·架构
plainGeekDev14 小时前
单例模式 → object 声明
android·java·kotlin
用户2986985301415 小时前
Java 实现 Word 文档文本与图片提取的方法
java·后端
SimonKing16 小时前
铁子,IntelliJ IDEA 2026.1.3来了,升不升?
java·后端·程序员
咖啡八杯1 天前
GoF设计模式——策略模式
java·后端·spring·设计模式
用户128526116021 天前
我把祖传Java项目重构后,接口响应从3s砍到了200ms,只改了这几行代码
java