`

java调用外部程序控制(二)进阶

    博客分类:
  • java
阅读更多

前面写过调用外部程序的,最近我在做的东西又遇到了设置工作目录的问题,

简而言之就是这样的应用

process = Runtime.getRuntime().exec("cmd /k start dir")

 

这时的默认路径是项目根目录,而很多时候我们需要指定目录,这时候就需要

写道
exec
public Process exec(String command,
String[] envp,
File dir)
throws IOException在有指定环境和工作目录的独立进程中执行指定的字符串命令。
这是一个很有用的方法。对于 exec(command, envp, dir) 形式的调用而言,其行为与调用 exec(cmdarray, envp, dir) 完全相同,其中 cmdarray 是 command 中所有标记的数组。

更准确地说,可以使用通过调用 new StringTokenizer(command) 创建的 StringTokenizer 将 command 字符串拆解成标记,调用时不对字符类别做进一步的修改。然后将标记生成器所生成的标记以相同的顺序放入新的字符串数组 cmdarray 中。


参数:
command - 一条指定的系统命令。
envp - 字符串数组,其中每个元素的环境变量的设置格式为 name=value;如果子进程应该继承当前进程的环境,或该参数为 null。
dir - 子进程的工作目录;如果子进程应该继承当前进程的工作目录,则该参数为 null。
返回:
一个新的 Process 对象,用于管理子进程
抛出:
SecurityException - 如果安全管理器存在,并且其 checkExec 方法不允许创建子进程
IOException - 如果发生 I/O 错误
NullPointerException - 如果 command 为 null,或者 envp 的某个元素为 null
IllegalArgumentException - 如果 command 为空
从以下版本开始:
1.3
另请参见:
ProcessBuilder

 第三个参数可以设置dir,即工作目录

类似我如下使用

process = Runtime.getRuntime().exec("cmd /k dir",null,new File("E:\\profit\\java\\"));

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics