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 文件
  • & 用于将命令置于后台运行

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

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

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

参考

相关推荐
拾陆楼6 小时前
PT: DMSA辅助调tree报告前后级余量脚本
后端·学习
今天的砖头有点烫手啊6 小时前
接口太慢?Spring Boot 缓存体系 @Cacheable 全链路拆解
spring boot·后端·缓存
东方小月6 小时前
从零开发一个 Coding Agent(七):实现纯文本 Agent Loop
前端·人工智能
大家的林语冰6 小时前
👉 尤雨溪再次成立新公司,同时官宣 Pinia 4 正式发布!
前端·javascript·vue.js
浮生望6 小时前
React useRef 深度解析:从DOM操作到Web Worker多线程协作
前端
ChaHae-In7 小时前
MyBatis入门操作
java·mybatis
浮生望7 小时前
React Router v7 实战全景:路由配置、嵌套路由、鉴权守卫与懒加载完整指南
前端
xcLeigh7 小时前
Go入门:短变量声明的陷阱与最佳实践
java·redis·golang·教程·变量
用户938515635077 小时前
从零在浏览器里跑 DeepSeek-R1:WebGPU + Transformer.js 全链路实战(二)
前端·javascript·typescript
青山木7 小时前
Hot 100 --- 最小栈
java·数据结构·算法·leetcode