首页 > 分享 > Java使用ProcessBuilder创建子进程出现错误:CreateProcess error=87

Java使用ProcessBuilder创建子进程出现错误:CreateProcess error=87

Exception occurred executing command line. Cannot run program... CreateProcess error=87, The parameter is incorrect

网上说的错误原因是CLASSPATH过长,但我测试发现,还有一种原因

根据ProcessBuilder的构造器,

public ProcessBuilder(String... command) {

}

对于command参数,首个参数是命令,如果使用的是相对路径,该命令还会从操作系统的PATH环境变量中去搜寻。
如果默认不是.bat或者.exe后缀,比如(.cmd),那么需要显示加上后缀,然后其余是命令后依次所跟的参数。

设置当前启动的子进程运行在哪个工作目录下

/**
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 here
myProc.destroy();

相关知识

java.io.IOException: CreateProcess error=2, 系统找不到指定的文件。问题
如何在 Java 中进行日志记录
java多线程面试题整理及答案
创建 memory cgroup 失败原因与解决方案
Zookeeper java客户端API使用
电子宠物游戏java
maven使用mvn archetype:generate命令创建项目骨架遇到的问题
宠物商店(SSH实现)资源
Java入门
Java DTO(data transfer object)的使用

网址: Java使用ProcessBuilder创建子进程出现错误:CreateProcess error=87 https://m.mcbbbk.com/newsview563692.html

所属分类:萌宠日常
上一篇: 社区设置宠物便便纸箱为狗狗提供“
下一篇: Tomcat设置