1.使用Runtime类调用CMD命令
2.使用ProcessBuilder类调用CMD命令
注:那个超时时间可以不用,是因为部分命令行不会自行结束。有的命令行语句在cmd中可以运行但是在Java中却报Cannot run program "apktool": CreateProcess error=2, 系统找不到指定的文件。可以试一下上面的方法,就是cmd /c + 你的命令,可以运行,有的命令不用cmd /c +也可以运行。
构造方法
-
ProcessBuilder(List<String> command): 使用命令行参数列表来构造一个
ProcessBuilder
对象。参数列表中的第一个元素是可执行文件的名称,后续元素是传递给该程序的参数。 -
ProcessBuilder(String... command): 使用可变数量的字符串参数来构造一个
ProcessBuilder
对象。这些字符串参数被用来设置程序的命令行参数。
方法
-
command(): 返回当前
ProcessBuilder
对象的命令行参数。 -
command(List<String> command): 设置
ProcessBuilder
对象的命令行参数列表。 -
command(String... command): 通过可变参数设置
ProcessBuilder
对象的命令行参数。 -
directory(): 返回
ProcessBuilder
对象的工作目录。 -
directory(File directory): 设置
ProcessBuilder
对象的工作目录,即子进程将使用此目录作为其当前工作目录。 -
environment(): 返回一个映射,包含
ProcessBuilder
对象的环境变量设置。通过这个映射,你可以添加、修改或删除环境变量。 -
redirectErrorStream(): 返回一个布尔值,指示是否合并标准错误流和标准输出流。如果返回
true
,则错误流和输出流会被合并。 -
redirectErrorStream(boolean redirectErrorStream): 设置是否合并标准错误流和标准输出流。如果设置为
true
,则错误流和输出流会合并,你只能通过Process.getInputStream()
读取。 -
start(): 使用当前
ProcessBuilder
对象的属性来启动一个新的进程。这是一个实例方法,它会创建一个新的Process
对象,代表新启动的子进程。