使用Shell脚本如何启动/停止Java的jar程序
时间: 2023-12-24 14:02:37 浏览: 40
可以使用以下 Shell 脚本启动和停止 Java 的 jar 程序:
启动脚本:
```
#!/bin/bash
nohup java -jar /path/to/your/jar/file.jar > /dev/null 2>&1 &
```
解释:
- 第一行指定脚本使用 bash 解释器。
- 第二行使用 nohup 命令运行 Java 虚拟机并启动 jar 程序。将输出重定向到 /dev/null,这样不会在终端上打印输出。使用 & 符号将进程放到后台运行。
停止脚本:
```
#!/bin/bash
pid=$(ps -ef | grep "your/jar/file.jar" | grep -v grep | awk '{print $2}')
if [[ -n $pid ]]; then
kill $pid
fi
```
解释:
- 第一行指定脚本使用 bash 解释器。
- 第二行使用 ps 命令查找包含 "your/jar/file.jar" 字符串的进程,并使用 grep、awk 命令从结果中获取进程 ID。
- 第三行使用 if 判断进程 ID 是否存在,如果存在则使用 kill 命令终止进程。
相关问题
java启动jar包shell脚本
要在Java中启动一个包含shell脚本的jar包,你可以使用Java的ProcessBuilder类。
首先,确保你已经将shell脚本保存在你的项目中的某个位置。然后,你可以使用以下代码来执行这个shell脚本:
```java
import java.io.IOException;
public class Main {
public static void main(String[] args) {
try {
// 构建ProcessBuilder对象,并指定要执行的命令
ProcessBuilder processBuilder = new ProcessBuilder("sh", "path/to/your/script.sh");
// 设置工作目录(可选)
processBuilder.directory(new File("path/to/your/project"));
// 启动进程并等待其执行完成
Process process = processBuilder.start();
int exitCode = process.waitFor();
// 检查进程的退出码
if (exitCode == 0) {
System.out.println("脚本执行成功!");
} else {
System.out.println("脚本执行失败!");
}
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}
```
请注意替换代码中的 "path/to/your/script.sh" 和 "path/to/your/project" 为你自己的实际路径。
这个代码片段将创建一个新的ProcessBuilder对象,并使用 "sh" 命令来执行shell脚本。你也可以根据需要更改命令,比如使用 "bash" 或其他shell程序。
如果你希望在执行脚本时设置工作目录,可以使用`processBuilder.directory(new File("path/to/your/project"))`方法来指定。
最后,你可以通过检查进程的退出码来确定脚本是否执行成功(0表示成功,非零表示失败)。
希望这对你有所帮助!如果有任何问题,请随时询问。
linux怎样使用shell脚本启动jar包
步骤如下:
1. 编写启动脚本
在Linux终端中创建一个文本文件,文件名可以为start.sh,然后在里面输入以下脚本代码:
```sh
#!/bin/bash
java -jar your_jar_file.jar
```
其中your_jar_file.jar是要启动的jar包文件名,保存后退出。
2. 赋予文件执行权限
使用命令chmod +x start.sh赋予该文件执行权限。
3. 运行脚本
在终端中运行脚本,命令为./start.sh,即可启动jar包。
注意:在运行脚本之前,需要保证Java环境已经安装并配置好了。