本文,我们来谈谈,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
即可。我们这里的案例如下: