问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

怎么用java代码运行linux命令

发布网友 发布时间:2022-04-23 14:49

我来回答

1个回答

热心网友 时间:2022-06-05 17:37

展开3全部

以下方法支持Linux和windows两个系统的命令行调用。还用到了apache的lang工具包commons-lang3-3.1.jar来判断操作系统类型、也用到了和log4j-1.2.16.jar来打印日志。至于rm -rf 是否能成功删除文件,可以手动去调用命令行试试。

private String callCmd(String cmd) throws InterruptedException, UnHandledOSException, ExecuteException {
        if(SystemUtils.IS_OS_LINUX){
            try {
                // 使用Runtime来执行command,生成Process对象
                Process process = Runtime.getRuntime().exec(
                        new String[] { "/bin/sh", "-c", cmd });
                int exitCode = process.waitFor();
                // 取得命令结果的输出流
                InputStream is = process.getInputStream();
                // 用一个读输出流类去读
                InputStreamReader isr = new InputStreamReader(is);
                // 用缓冲器读行
                BufferedReader br = new BufferedReader(isr);
                String line = null;
                StringBuilder sb = new StringBuilder();
                while ((line = br.readLine()) != null) {
                    System.out.println(line);
                    sb.append(line);
                }
                is.close();
                isr.close();
                br.close();
                return sb.toString();
            } catch (java.lang.NullPointerException e) {
                System.err.println("NullPointerException " + e.getMessage());
                logger.error(cmd);
            } catch (java.io.IOException e) {
                System.err.println("IOException " + e.getMessage());
            }
            throw new ExecuteException(cmd + "执行出错!");
        }
         
        if(SystemUtils.IS_OS_WINDOWS){
            Process process;
            try {
                //process = new ProcessBuilder(cmd).start();
                String[] param_array = cmd.split("[\\s]+");
                ProcessBuilder pb = new ProcessBuilder(param_array);
                process = pb.start();
                /*process=Runtime.getRuntime().exec(cmd);*/
                int exitCode = process.waitFor();
                InputStream is = process.getInputStream();
                InputStreamReader isr = new InputStreamReader(is);
                BufferedReader br = new BufferedReader(isr);
                String line;
                StringBuilder sb = new StringBuilder();
 
                while ((line = br.readLine()) != null) {
                    System.out.println(line);
                    sb.append(line);
                }
                is.close();
                isr.close();
                br.close();
                return sb.toString();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            throw new ExecuteException(cmd + "执行出错!");
        }
         
        throw new UnHandledOSException("不支持本操作系统");
    }

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
在液压原理图中各种符号的表示意义是什么? 脚臭怎么办,一脱鞋,那味道我自己都受不了? ...经电加热后表面会形成一层黑色物质,请问是什么东西?用什么化学... 宿舍老是经常出现蚂蚁,放久的书本打开全是蚂蚁,或是布柜里放久的衣服... 为什么寝室地板上会有蚂蚁? 怎么计算产值excel 青春不再伤感经典句子(《青春伤感经典短句子》) 致我们失去的青春简短说说(怀念过去的经典句子) 分享回忆过去致青春的语录集锦(回忆的句子时光感言简短) 女生为什么总想摸我的脸 求一些比较偏门的屏幕录制软件,不会被检测出来的那种 java怎么调用linux的命令?怎么输入一条命令让linux用终端运行,然后获得... 有好的录屏软件推荐吗?(最好无水印,无片头,不漏帧的) 录屏软件不被杀毒检测 哪个录屏软件不会被网站发现 高分求问,有什么手机录屏软件,可以隐藏起来,隐藏在后台,菜单栏找不到的那种 录屏软件是怎么被发现的 - 信息提示 怎么录屏能够保证不被检测到? 酵母粉放多了,馒头会变酸吗? 发糕的发酵粉放多了怎么办,而且都发酵完了,是不是吃起来口感不好 发面放发酵粉多了怎么办 对于闪光灯的选择,需要注意些什么呢? 闪光灯对于曝光组合的影响? 闪光灯对于单反相机作用大吗 闪光灯对天空的影响 摄影闪光灯对人体伤害有多大 闪光灯对屏幕好吗 word给汉字注音应该要什么字体 请问在WORD里用哪种字体打出汉语拼音的声调,打印出来可以正常显示? - 信息提示 用手机录像怎样不被发现?方法越多越好。 java怎么执行linux交互式命令 有盗录zoom视频会议的录屏软件吗? java调用linux终端命令,如何使终端不直接退出 有没有比较好的防止被软件录屏的好的视频平台啊? java如何调用Linux下的top命令 java 怎么调用linux nload命令 请问java如何在linux下调用程序命令 问高手:java中如何调用linux系统命令 抖音尚未获得QQ的权限怎么办登录不上去,急急急!!! 把电脑设置成保护色了之后再怎样给弄回原来的状态 xp系统怎么将电脑屏幕保护色改回原状 笔记本玩游戏,这底下显示栏一直在,怎么去掉 用电脑玩游戏时怎么把下面的状态栏隐藏掉? 怎么恢复电脑显示屏护眼设置 电脑游戏怎么取消掉下面的状态栏 在游戏中怎么把电脑下面的任务栏去了 电脑屏幕被调成绿色保护色了,如何才能改为正常的呢,怎么设置 电脑设置了视力保护色,即word什么的背景都是绿色。如何调为正常