• 欢迎访问本网站,技术教程,资源分享,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入东蓬莱!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏东部蓬莱吧

【Java】解决Runtime方法无法执行多个cmd命令问题

后台开发 XiaoWang 12个月前 (06-19) 519次浏览 0个评论 扫描二维码
  • 第一种方案
  • Runtime runtime = Runtime.getRuntime();  
    Process proc = runtime.exec("sh");
    DataOutputStream os = new DataOutputStream(proc.getOutputStream());
    os.writeBytes("su\n");
    os.writeBytes("./deviceinfo  > /data/test.txt\n");
    os.writeBytes("exit\n");
    os.flush();
    
  • 第二种方案
  • 使用 && 分隔命令

    public static void cmd()  {
            String ls = "  cd /home/ &&  dir ";
            Process process = null;
            String cmd = getOsCmd()+ ls;
            try {
                process = Runtime.getRuntime().exec(cmd);
                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
                String line = null;
                while ((line = bufferedReader.readLine()) != null) {
                    System.out.println(new String(line.getBytes(),"GBK"));
                }
            }catch (Exception e){
                e.printStackTrace();
            }
            finally {
                process.destroy();
            }
        }
     
        public static String getOsCmd(){
            Properties props=System.getProperties(); //获得系统属性集
            String osName = props.getProperty("os.name"); //操作系统名称
            if(osName.toLowerCase().contains("linux")){
                return "/bin/sh -c";
            }else if(osName.toLowerCase().contains("windows")){
                return "cmd /c";
            }else{
                throw new RuntimeException("服务器不是linux|windows操作系统");
            }
        }
    

    东部蓬莱 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
    转载请注明原文链接:【Java】解决Runtime方法无法执行多个cmd命令问题
    喜欢 (0)
    [支付宝]
    分享 (0)
    发表我的评论
    取消评论
    表情 贴图 加粗 删除线 居中 斜体 签到

    Hi,您需要填写昵称和邮箱!

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址