使用 nohup 部署和后台运行 Java 项目
1. 下载示例项目
首先,我们选择了Spring官方的PetClinic项目作为示例。你可以通过以下命令将项目代码下载到本地:
git clone https://github.com/spring-projects/spring-petclinic.git
- 这个项目本地运行是这样的
2. 构建项目
进入项目目录,使用Maven或Gradle进行项目构建。如果使用Maven,执行以下命令:
cd spring-petclinic ./mvnw clean package
如果使用Gradle,执行:
cd spring-petclinic ./gradlew clean build
如果有IDEA的话可以按照下面的操作进行
以maven形式打开项目
重新加载一次maven
- 先clean一下
- 再package
- 这里有打包好的jar包
3. 上传 JAR 文件到服务器
将构建好的JAR文件上传至部署服务器。可以使用scp或其他文件传输工具:
scp target/spring-petclinic.jar user@your_server_ip:/path/on/server
确保替换 user 为服务器用户名,your_server_ip 为服务器IP地址,/path/on/server 为服务器上的存储路径。
- 也可以直接使用xshell
- 直接拖动jar包到xshell的jar文件夹下面
4. 使用 nohup 启动 Java 项目
输入nohup java -jar xxx.jar >> api.log &可以运行
- 可以看到生成了一个api.log日志文件,通过cat命令可以看我们这个项目运行时候的状态,很显然报错了,这个错误是springboot版本的问题,修改一下重新打包就好了。
解决方案看这篇文章:java: 无法访问org.springframework.boot.SpringApplication解决办法 - 小注意
一般在使用nohup之前先用java -jar运行一下jar包,看一下可以正常运行吗,如果不可以记得修改一下代码,java -jar虽然是java原生的运行jar包的方式,但是他只能够在命令框开启的时候运行,关闭了就停止了。
5. 检查应用状态
使用 ps 命令检查Java进程是否正在运行:
ps aux | grep spring-petclinic.jar