java Runtime如何执行多条命令

目录
  • java Runtime如何执行多条命令
  • Runtime.getRuntime().exec 执行多条

java Runtime如何执行多条命令

使用 && 分隔命令

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操作系统");
        }
    }

Runtime.getRuntime().exec 执行多条

中间加上 & 或者 && 就可以执行多条了.

Runtime.getRuntime().exec("cmd1 && " +
"cmd2 && " +
"cmd3 && " );

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • java.lang.Runtime.exec的左膀右臂:流输入和流读取详解

    目录 什么是java.lang.Runtime 什么是java.lang.Process 具体做法 Runtime.exec 陷阱 IllegalThreadStateException 为什么Runtime.exec()挂起 在java.lang.Runtime.exec的使用中,我们经常会用到将重定向命令执行的输入/结果或者将错误信息读取出来. 那么,在使用过程中,我们如何正确的使用呢? 什么是java.lang.Runtime 首先我们要明确一点,什么是Java.lang.Runtime?

  • java.lang.Runtime.exec() Payload知识点详解

    有时,通过Runtime.getRuntime().exec()执行命令的有效负载有时会失败.使用Web Shell,反序列化利用或通过其他媒介时,可能会发生这种情况. 有时这是因为重定向和管道字符的使用在启动过程的上下文中没有意义.例如,在shell中执行ls> dir_listing会将当前目录的列表输出到名为dir_listing的文件中.但是在exec()函数的上下文中,该命令将被解释为获取>和dir_listing目录的列表. 有时,StringTokenizer类会破坏其中包含空格

  • Java Process与Runtime()的使用及调用cmd命令阻塞的解决方案

    Java Process与Runtime()使用 java调用cmd执行bat文件有时会出现卡死的现象,当时感觉很迷惑,后来查资料,本来一般都是这样来调用程序并获取进程的输出流的,但是我在windows上执行这样的调用的时候却总是在while那里被堵塞了,结果造成ffmpeg程序在执行了一会后不再执行,这里从官方的参考文档中我们可以看到这是由于缓冲区的问题,由于java进程没有清空ffmpeg程序写到缓冲区的内容,结果导致ffmpeg程序一直在等待. 在网上也查找了很多这样的问题,不过说的都是使

  • 调用java.lang.Runtime.exec的正确姿势分享

    目录 调用java.lang.Runtime.exec的正确姿势 两种方法 小结一下 Java Runtime.exec()注意事项 1.Runtime.exec() 有四种调用方法 2.得到程序执行返回值, 0为success 3.得到程序执行的结果或错误信息 4.Runtime.exec() 调用java.lang.Runtime.exec的正确姿势 今天写一个用到编译的程序,遇到了问题. 在调用 runtime.exec("javac HelloWorld.java"); 运行完

  • java使用Runtime执行系统命令遇到的问题

    目录 使用Runtime执行系统命令遇到的问题 参数含义 下面是实现代码 java Runtime.exec() 执行 举个例子 使用Runtime执行系统命令遇到的问题 java执行系统命令的工具,Runtime.getRuntime().exec(),这个工具里面的坑还是不少的,大部分网上已经分析了,我遇到一个没有在网上找到的. 首先说一下这个坑,在command中如果参数的内容中有空格.tab.换行符.回车符,就会执行失败,例如:grep "abc def" -r -n ./这是

  • Java Runtime的使用详解

    目录 前言 1. shutdownhook 2. exec执行 2.1 常规命令执行 2.2 管道符 2.3源码分析 3. 总结 前言 最近做项目框架,需要在框架结束的时候,关闭服务器连接,清除部分框架运行lock文件,这里就想到了shutdownhook,顺便学了学Runtime的使用 1. shutdownhook demo示例,证明在程序正常结束的时候会调用,如果kill -9 那肯定就不会调用了 public class ShutdownHookTest { public static

  • java Runtime如何执行多条命令

    目录 java Runtime如何执行多条命令 Runtime.getRuntime().exec 执行多条 java Runtime如何执行多条命令 使用 && 分隔命令 public static void cmd() { String ls = " cd /home/ && dir "; Process process = null; String cmd = getOsCmd()+ ls; try { process = Runtime.getR

  • java如何连续执行多条cmd命令

    java连续执行多条cmd命令 命令之间用&连接 例如: Process p = Runtime.getRuntime().exec("cmd /c d: & cd bin/"); java ssh登录执行多条cmd命令 java登录ssh执行多条命令,解决出现more自动回车的问题 import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import ja

  • Linux 连续执行多条命令的方法(推荐)

    每条命令使用";"隔开,则无论前边的命令执行成功与否都会继续执行下一条命令 这里,故意将第二条命令中的echo多写了一个o,命令执行出错,但并不影响后续命令的执行 可以这么想,如果用分号来间隔命令,就相当于将命令分隔在了不同的行,无论前一行的命令成功或失败,都不影响下一行命令的执行. $ echo 1; echoo 2; echo 3; echo 4 1 -bash: echoo: command not found 3 4 若命令间使用"&&"隔开

  • docker run起来之后执行多条命令

    最近在搞jenkins pipeline的部署工作,而在对.net core进行部署时不希望安装dotnet sdk,为了移植性更好,打算直接使用aspnetcore的docker镜像,通过docker去run它,而在这个时间出现了一个问题 docker run aspnetcore:2.0之后如果希望同时执行多个sh命令出现了问题,还非要写个脚本文件,这是大叔不喜欢的! docker run aspnetcore:2.0 ls && ls 结果是第一个ls显示的是容器里的内容,而第二个l

  • Java中如何执行多条shell/bat命令

    java调用process执行命令 public class ShellUtil { public static String runShell (String shStr) throws Exception { Process process; process = Runtime.getRuntime().exec( new String[]{ "/bin/sh" , "-c" ,shStr}); process.waitFor(); BufferedReader

  • Java JSch远程执行Shell命令的方法

    目录 背景 JSch简介 使用示例 需要注意的点 参考文档 背景 项目需求,需要远程 ssh 登录到某个节点执行 shell 命令来完成任务.对于这种需求,如果不用 java 程序,直接 linux 的 ssh 命令就可以完成,但是在编码到程序中时需要相关的程序包来完成,本文主要介绍在 java 中如何使用 JSch 包实现 ssh 远程连接并执行命令. JSch 简介 JSch是Java Secure Channel的缩写.JSch是一个SSH2的纯Java实现.它允许你连接到一个SSH服务器

  • java多线程中执行多个程序的实例分析

    我们知道多线程因为同时处理子线程的能力,对于程序运行来说,能够达到很高的效率.不过很多人对于多线程的执行方法还没有尝试过,本篇我们将为大家介绍创建线程的方法,在这个基础上,对程序执行多条命令的方法进行展示.下面我们就来看看具体的操作步骤吧. 1.创建线程对象我们需要用到Thread类,该类是java.lang包下的一个类,所以调用时不需要导入包.下面我们先创建一个新的子类来继承Thread类,然后通过重写run()方法(将需要同时进行的任务写进run()方法内),来达到让程序同时做多件事情的目的

  • 初窥Linux 之我最常用的20条命令总结

    玩过Linux的人都会知道,Linux中的命令的确是非常多,但是玩过Linux的人也从来不会因为Linux的命令如此之多而烦恼,因为我们只需要掌握我们最常用的命令就可以了.当然你也可以在使用时去找一下man,他会帮你解决不少的问题.然而每个人玩Linux的目的都不同,所以他们常用的命令也就差异非常大,而我主要是用Linux进行C/C++和shell程序编写的,所以常用到的命令可以就会跟一个管理Linux系统的人有所不同.因为不想在使用是总是东查西找,所以在此总结一下,方便一下以后的查看.不多说,

  • python实现多线程的方式及多条命令并发执行

    一.概念介绍 Thread 是threading模块中最重要的类之一,可以使用它来创建线程.有两种方式来创建线程:一种是通过继承Thread类,重写它的run方法:另一种是创建一个threading.Thread对象,在它的初始化函数(__init__)中将可调用对象作为参数传入. Thread模块是比较底层的模块,Threading模块是对Thread做了一些包装的,可以更加方便的被使用. 另外在工作时,有时需要让多条命令并发的执行, 而不是顺序执行. 二.代码样例 #!/usr/bin/py

  • java开发 线上问题排查命令详解

    前言 作为一个合格的开发人员,不仅要能写得一手还代码,还有一项很重要的技能就是排查问题.这里提到的排查问题不仅仅是在coding的过程中debug等,还包括的就是线上问题的排查.由于在生产环境中,一般没办法debug(其实有些问题,debug也白扯...),所以我们需要借助一些常用命令来查看运行时的具体情况,这些运行时信息包括但不限于运行日志.异常堆栈.堆使用情况.GC情况.JVM参数情况.线程情况等. 给一个系统定位问题的时候,知识.经验是关键,数据是依据,工具是运用知识处理数据的手段.为了便

随机推荐