You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Java登录并重载JBoss服务器时遭遇CreateProcess错误求助

解决Java调用JBoss CLI时的CreateProcess error=2问题

嘿,我一眼就看出问题所在啦!你现在把完整的JBoss CLI命令行都当成单个字符串传给ProcessBuilder了,这可不对——ProcessBuilder会把这个一整串内容当作要执行的文件名称,而不是去调用jboss-cli.bat并传递后面的参数,系统当然找不到这个奇怪的“文件”,所以才抛出了CreateProcess error=2的错误。

正确的写法是拆分命令与参数

你需要把可执行文件的路径和每个命令参数分开,作为ProcessBuilder的多个参数传入,这样它才能正确识别程序和对应的参数:

ProcessBuilder processBuilder = new ProcessBuilder(
    "C:\\jboss\\jboss-eap-6.4\\bin\\jboss-cli.bat",
    "-c",
    "--controller=10.10.10.10",
    "--user=user",
    "--password=pass",
    "--command=:reload"
);
processBuilder.inheritIO();
Process p = processBuilder.start();
try {
    p.waitFor();
} catch (InterruptedException e) {
    e.printStackTrace();
}

为什么要这么做?

ProcessBuilder的构造方法如果接收单个字符串,它会直接把这个字符串当作可执行文件的路径去查找;而如果传入多个字符串,第一个字符串是可执行文件路径,后面的每个字符串都是独立的命令行参数,这样就能正确调用jboss-cli.bat并执行重载命令了。

另外还有个小提示:如果你的JBoss安装路径里包含空格,这种拆分参数的方式也能自动处理,不用手动给路径加引号,非常省心~

内容的提问来源于stack exchange,提问作者anumeha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:06:24