前言: IT培训网小编来告诉大家Java执行shell脚本的方法。如果你有一个 shell 脚本,比如 test.sh,那么你可以使用 RunTime 类或
IT培训网小编来告诉大家Java执行shell脚本的方法。如果你有一个 shell 脚本,比如 test.sh,那么你可以使用 RunTime 类或 ProcessBuilder 从 Java 程序运行它(注意 ProcessBuilder 是在 Java 5 中添加的)。
使用 Runtime.getRunTime().exec 执行 shell 脚本
导入 java.io.BufferedReader;
导入 java.io.IOException;
导入 java.io.InputStreamReader;
公共类 RunningSS {
公共静态无效主要(字符串[]参数){
进程 p;
尝试 {
String[] cmd = { "sh", "/home/adb/Documents/test.sh"};
p = Runtime.getRuntime().exec(cmd);
p.waitFor();
BufferedReader reader=new BufferedReader(new InputStreamReader(
p.getInputStream()));
字符串线;
while((line = reader.readLine()) != null) {
System.out.println(line);
}
} 捕捉(IOException e){
// TODO 自动生成的 catch 块
e.printStackTrace();
} 捕捉(InterruptedException e){
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
使用给定的 shell 脚本执行此 Java 程序后,如果您在 Java 程序所在的位置进行验证,您将看到在该目录中创建了一个目录 test 和一个文件 SAMPLE。
Runtime.getRuntime().exec方法用于运行命令。
public static Runtime getRuntime() - 返回与当前 Java 应用程序关联的运行时对象。
public Process exec(String command) throws IOException - 在单独的进程中执行指定的字符串命令。
与命令一起使用的cmd /c具有以下解释 -
cmd - 启动一个新的命令外壳
/c - 执行给定的命令并终止
该命令的执行返回类 Process 的实例。使用 Process 类的getInputStream()方法,可以通过读取流来打印执行命令的输出。
如果您必须使用 ProcessBuilder 运行与上述相同的命令,这是一种更清晰的方法,您可以创建一个包含命令和所需参数的列表,然后将其作为命令传递给 ProcessBuilder 实例。
导入 java.io.BufferedReader;爪哇_ 伊奥。缓冲读取器;
导入 java.io.IOException;导入java 。伊奥。异常;
导入 java.io.InputStreamReader;导入java 。伊奥。输入流读取器;
导入 java.util.ArrayList;导入java 。实用程序。数组列表;
导入 java.util.List;导入java 。实用程序。列表;
公共类 RunningSS {公共类RunningSS {
公共静态无效主要(字符串[]参数){公共静态无效主要(字符串[]参数){
进程 p;进程p ;
尝试 { 试试{
List<String> cmdList = new ArrayList<String>();列表<字符串> cmdList = new ArrayList <字符串>();
// 将命令和参数添加到列表中// 将命令和参数添加到列表中
cmdList.add("sh");. 添加(“sh” );
cmdList.add("/home/adb/Documents/test.sh");. 添加(“/home/adb/Documents/test.sh” );
ProcessBuilder pb = new ProcessBuilder(cmdList);ProcessBuilder pb = new ProcessBuilder ( cmdList );
p = pb.start();=铅。开始();
p.waitFor();. 等待();
BufferedReader reader=new BufferedReader(new InputStreamReader(BufferedReader reader = new BufferedReader ( new InputStreamReader (
p.getInputStream()));. 获取输入流()));
字符串线;字符串线;
while((line = reader.readLine()) != null) {while (( line = reader . readLine ()) != null ) {
System.out.println(line);系统。出来。println (行);
}}
} 捕捉(IOException e){}捕捉(IOException e ){
// TODO 自动生成的 catch 块// TODO 自动生成的 catch 块
e.printStackTrace();. 打印堆栈跟踪();
} 捕捉(InterruptedException e){}捕捉(InterruptedException e ){
// TODO 自动生成的 catch 块// TODO 自动生成的 catch 块
e.printStackTrace();. 打印堆栈跟踪();
}}
}}
}}
以上就是关于“Java执行shell脚本的方法”,如果大家对此比较感兴趣,可以关注一下IT培训网的Java在线学习,里面的课程内容细致全面,很适合没有基础的小伙伴学习,希望对大家能够有所帮助。
文章出自:http://qh.itpxw.cn/peixun/software/2022123843.html
文章标题:Java执行shell脚本的方法
免责声明:本站文章均由入驻起航学习网的会员所发或者网络转载,所述观点仅代表作者本人,不代表起航学习网立场。如有侵权或者其他问题,请联系举报,必删。侵权投诉
IT培训网 访问该机构站点 报名留言 加为好友 用户等级:注册会员
用户级别:10
机构名称:IT培训网
联 系 人:罗老师
联系电话:13783581536
联系手机:13783581536
在线客服:
在 线 QQ:
电子邮件:
网站域名:http://www.itpxw.cn
注册时间:2016-07-18 11:07
最后登录:2024-02-20 13:02
Java定义方法的格式是什么?IT培训网小编来告诉大家。所谓方法...
大家在Java教程中会学到关于Java消息推送的知识,那么,Java消息...
常用的Java日期格式转换有哪些?IT培训网小编来告诉大家。 1...
Java创建对象数组的方法是什么?IT培训网小编来告诉大家。Ja...