java调用shell脚本传参数怎么做
java调用shell脚本传参数怎么做?
要在Java中调用Shell脚本并传递参数,可以使用Java的`ProcessBuilder`类来执行Shell命令。以下是一个示例代码,展示了如何实现这一过程:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class ShellCommandExecutor {
public static void main(String[] args) {
try {
// 定义Shell命令和参数
String command = "/bin/sh";
String scriptPath = "/path/to/your/script.sh";
String[] commandWithArgs = { command, scriptPath, "arg1", "arg2", "arg3" };
// 创建ProcessBuilder对象并设置命令及参数
ProcessBuilder pb = new ProcessBuilder(commandWithArgs);
// 启动子进程并执行Shell命令
Process process = pb.start();
// 读取子进程输出
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
// 等待子进程执行结束
int exitCode = process.waitFor();
System.out.println("Shell脚本执行完毕,退出码:" + exitCode);
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}
在上面的代码中,`commandWithArgs`数组中的第一个元素是Shell命令的路径,后续元素是传递给Shell脚本的参数。在示例中,假设Shell脚本位于`/path/to/your/script.sh`,并传递了三个参数:arg1、arg2和arg3。
执行Shell命令后,可以使用`Process.getInputStream()`方法来读取子进程的输出。在示例中,使用`BufferedReader`逐行读取输出并打印到控制台。
最后,使用`Process.waitFor()`方法等待子进程执行结束,并获取子进程的退出码。根据退出码,可以判断Shell脚本的执行结果。
请注意,上述示例仅适用于调用类Unix风格的Shell脚本(如Bash),对于Windows的Batch脚本(.bat或.cmd文件),需要相应调整命令和参数的设置。
猜你喜欢LIKE
相关推荐HOT
更多>>物联网培训问答更多>>
新物联网工程专业冷门吗
新物联网专业主要就业方向是什么
新物联网工资多少钱一个月
新物联网属于什么类专业?
新物联网是干什么的用的
新物联网工程专业学什么
新嵌入式培训学费多少?
- 北京校区
- 大连校区
- 广州校区
- 成都校区
- 杭州校区
- 长沙校区
- 合肥校区
- 南京校区
- 上海校区
- 深圳校区
- 武汉校区
- 郑州校区
- 西安校区
- 青岛校区
- 重庆校区
- 太原校区
- 沈阳校区
- 南昌校区
- 哈尔滨校区