Java可以通过Runtime类或ProcessBuilder类来调用Shell脚本。
- 使用Runtime类调用Shell脚本:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class RunShellScript {
public static void main(String[] args) {
try {
String command = "sh /path/to/script.sh";
Process process = Runtime.getRuntime().exec(command);
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();
}
}
}
- 使用ProcessBuilder类调用Shell脚本:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.List;
public class RunShellScript {
public static void main(String[] args) {
try {
List<String> command = List.of("sh", "/path/to/script.sh");
ProcessBuilder processBuilder = new ProcessBuilder(command);
processBuilder.directory(null);
Process process = processBuilder.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();
}
}
}
注意:在调用Shell脚本时需要根据实际情况替换/path/to/script.sh为实际的Shell脚本文件路径。
提供PHP及ThinkPHP框架的定制开发、代码优化,PHP修改、ThinkPHP修改。
邮箱:yvsm@163.com
微信:yvsm316
QQ:316430983
版权声明:除特别声明外,本站所有文章皆是本站原创,转载请以超链接形式注明出处!