java jar 包发布

本文,我们来谈谈,java 中使用 jar 包来发布应用~

JAR 全称 Java Archive,是一种常见的文件格式,用于存储和分发 Java 程序和库。在 Java 开发中,JAR 文件广泛用于打包和发布应用程序或模块。

Demo 相关环境:

  • Google Chrome 版本 117.0.5938.149(正式版本) (arm64)
  • MacBook Air(M1, 2020)
  • IntelliJ IDEA 2021.2.2

可运行代码

我们简单新建一个应用,并写了一个获取用户的接口:

java 复制代码
@RestController
public class UserController {
  @GetMapping("/user")
  public String getUserList() {
    return "come here";
  }
}

运行项目后,访问 http:localhost:8080/user 即可。

打包为 JAR 文件

我们在 IntelliJ IDEA 中打开项目,在右侧会有一个 Maven 的选项。点击 package 之后,去喝杯咖啡回来,你会看到在项目的 target 目录下,生成了两个文件:

  • *.jar 文件是打包后的可执行 JAR 文件,其中包含了编译后的 Java 代码和项目的依赖库。
  • *.jar.original 文件是 Maven 生成的原始的 JAR 文件,它包含了原始的编译后 Java 代码的 JAR 文件。该文件主要是用于调试和查看项目的源代码,便于开发者在需要进行调试时使用。

我们主要关注 *.jar 文件,它是可以直接使用和分发的可执行文件。

运行 jar 包

我们可以直接通过命令行 java -jar your_project.jar 来执行。比如,我们的 Demo 项目:

此时,打开谷歌浏览器,输入地址 http://localhost:8080/user,即可看到效果:

然而,当我们关闭控制台的时候,应用也就中断了。

那么,我们可以不中断程序进程,让其在后台运行的吗?

是的,我们可以使用 nohup 命令来实现:

bash 复制代码
nohup java -jar your-jar-file.jar > output.txt &
  • 启动一个 your-jar-file.jar 文件
  • 将输出重定向到 output.txt 文件
  • & 用于将命令置于后台运行

nohup 在 linux 系统上生效(感兴趣读者自行尝试)。本文 demo 在 macos 上进行演示,我们可以使用如下的操作:

java -jar your-jar-file.jar & 运行程序,并使用命令 bg 将进程切换后后台运行,最后使用 disown 命令将进程与当前终端分离。

当我们想关闭该进程,可以通过 ps aux | grep java 命令行列出 java 程序,然后找到对应的 PID,进行 kill PID 即可。我们这里的案例如下:

参考

相关推荐
计算机魔术师1 分钟前
OpenAI 砍掉 100 亿融资目标,AI 资本市场的温度计变了
前端
jktantan21 分钟前
(二)Vue 3 的 attrs 不是响应式:el-form 扩展属性同步的三种方案
前端·javascript·vue.js·element-plus
Wang's Blog27 分钟前
Java 项目实战: 交友项目 - 项目:需求分析与滑动数据设计
java·开发语言·交友
前端 贾公子41 分钟前
第 5 章:Codex 从可运行程序到可交付工具
java·前端·数据库
CoderYanger1 小时前
Java EE 进阶:5. Spring IoC&DI(第三弹):Spring DI
java·开发语言·spring boot·spring·面试·java-ee·mvc
用户360055579001 小时前
Kestrel_VLLM - 26 · 发射空档三步曲:事件计时 → nsys → 判别实验
前端
Thneonl1 小时前
Claude Code 频繁 Compacting?发布次日我根治了 2 个痛点
后端·rust
echome8881 小时前
JavaScript async/await 错误处理:别让 Promise 静默失败
开发语言·前端·javascript·promise
一条泥憨鱼1 小时前
【Kafka】零基础学习教程
java·分布式·学习·kafka
PedroQue991 小时前
v0.2.0 架构升级:class + reactive 重塑状态管理
前端·uni-app