Runtime.getRuntime.exec(String)与exec(String[])的区别
2013-12-03 00:00
441 查看
Runtime.getRuntime.exec(String)
这个方法传入的是字符串,JAVA内部处理时会对字符串进行分割成数据,然后调用exec(String[],null,null)方法
Runtime.getRuntime.exec(String[])
该方法会最后也是执行exec(String[],null,null)
从上面可以看出,如果执行一整条已经拼接好的命令时,可以用exec(String);如果命令参数分开时,可以用exec(String[]);如果把一条已经拼接好的字符串执行第二个方法,就会报命令找不到。
这个方法传入的是字符串,JAVA内部处理时会对字符串进行分割成数据,然后调用exec(String[],null,null)方法
public Process exec(String command) throws IOException { return exec(command, null, null); } public Process exec(String command, String[] envp, File dir) throws IOException { if (command.length() == 0) throw new IllegalArgumentException("Empty command"); StringTokenizer st = new StringTokenizer(command); String[] cmdarray = new String[st.countTokens()]; for (int i = 0; st.hasMoreTokens(); i++) cmdarray[i] = st.nextToken(); return exec(cmdarray, envp, dir); public Process exec(String[] cmdarray, String[] envp, File dir) throws IOException { return new ProcessBuilder(cmdarray) .environment(envp) .directory(dir) .start(); }
Runtime.getRuntime.exec(String[])
该方法会最后也是执行exec(String[],null,null)
public Process exec(String cmdarray[]) throws IOException { return exec(cmdarray, null, null); } public Process exec(String[] cmdarray, String[] envp, File dir) throws IOException { return new ProcessBuilder(cmdarray) .environment(envp) .directory(dir) .start(); }
从上面可以看出,如果执行一整条已经拼接好的命令时,可以用exec(String);如果命令参数分开时,可以用exec(String[]);如果把一条已经拼接好的字符串执行第二个方法,就会报命令找不到。
相关文章推荐
- tar time stamp in the future问题
- 浅析【缤纷桌面】
- 程序员的开源精神真的不错
- 简易javascript遮罩层提示框
- JUnit4 学习总结
- 就开会
- mark
- a
- Mysql左连接,右连接,内连接的区别
- Mysql修改root密码
- java mysql latin1繁体中文乱码问题
- WebView 总结
- How to Enable PS Remote
- spark的几点备忘
- Flex 子界面调用父界面的方法
- ZOJ 3736 Pocket Cube
- xdebug php
- Android SlidingMenu 的实现
- 关于《C语言深度解剖》一些例程的实验和感悟——关键字static
- 通过JSSE来发起Https请求