Java使用ProcessBuilder创建子进程出现错误:CreateProcess error=87
来源:互联网 发布:淘宝开店怎么卖东西 编辑:程序博客网 时间:2024/05/05 17:41
Exception occurred executing command line. Cannot run program... CreateProcess error=87, The parameter is incorrect
网上说的错误原因是CLASSPATH过长,但我测试发现,还有一种原因
根据ProcessBuilder的构造器,
<pre name="code" class="java">/*** Constructs a process builder with the specified operating system program and arguments. * This is a convenience constructor that sets the process builder's command to a string * list containing the same strings as the command array, in the same order. It is not * checked whether command corresponds to a valid operating system command.* Parameters:* command a string array containing the program and its arguments**/public ProcessBuilder(String... command) {}对于command参数,首个参数是命令,如果使用的是相对路径,该命令还会从操作系统的PATH环境变量中去搜寻。
如果默认不是.bat或者.exe后缀,比如(.cmd),那么需要显示加上后缀,然后其余是命令后依次所跟的参数。
还有一点需要注意的是:如果ProcessBuilder使用.bat或者.cmd发起的批处理命令,那么返回的Process对象表示的是这个批处理进程,而不是真正所执行的批处理中的那个exe命令子进程,也就是说,当你调用Process对象上的destroy方法,只相当于关闭了命令行窗口,并没有把实质的exe进程关闭掉。
public ProcessBuilder directory(File workingDirectory)设置当前启动的子进程运行在哪个工作目录下
/*** Sets the source and destination for subprocess standard I/O to be the same as * those of the current Java process. * This is a convenience method.**/public ProcessBuilder inheritIO();设置启动的子进程的输入输出控制台与父进程相同
public Process start();启动子进程,返回Process对象,可以调用该对象的destroy来杀掉子进程
举例:
Process myProc = new ProcessBuilder("mycommand.exe", "arg1", "arg2", "args").directory(myWorkingDirectory).inheritIO().start();//any other code heremyProc.destroy();
0 0
- Java使用ProcessBuilder创建子进程出现错误:CreateProcess error=87
- CreateProcess创建的子进程
- xmlbeans 使用 以及 java.io.IOException CreateProcess error=2错误处理(转)
- ProcessBuilder异常CreateProcess error=2, ϵͳÕҲ»µ½ָ¶
- CreateProcess error=87
- CreateProcess创建的子进程的命令行参数
- CreateProcess创建的子进程的命令行参数 - 早雪网
- CreateProcess创建的子进程的命令行参数
- CreateProcess创建的子进程的命令行参数
- CreateProcess创建的子进程的命令行参数
- Java中ProcessBuilder使用
- Android Studio首次安装出现错误之:CreateProcess error=216
- 错误记录--Flex CreateProcess error=3
- eclipse错误处理CreateProcess error=206
- adb连接时出现如下错误CreateProcess failure, error 2
- cocos2dx Android工程编译出现error: CreateProcess错误
- 关于进程创建,CreateProcess
- CreateProcess创建进程
- Java操作Redis实现单点故障自动切换
- J2EE规范——JDBC
- MAC下MySQL的安装与使用
- [数据库连接]MySql基础:1
- NGUI简介
- Java使用ProcessBuilder创建子进程出现错误:CreateProcess error=87
- Android中Intent与Bundle 在传值时有什么不同
- xcode6 scrollview autolayout
- HTTP 方法:GET 对比 POST
- J2EE规范——JNDI
- lldb 命令使用
- J2EE开发技术简介之JBOSS
- jms消息机制,包括点对点、发布/订阅模式
- watersed标志分水岭算法