java createprocess error=2_可能原因java.io.IOException:CreateProcess error = 2,系统找不到指定的文件...

本文探讨了使用Java执行PostgreSQL的VACUUMVERBOSE命令时遇到的问题及异常。作者尝试通过组合多个字符串命令来启动外部进程执行SQL命令,但在运行时遇到了文件未找到的错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我正尝试通过java执行'VACUUM VERBOSE'命令。

这是我的代码

public void executeCommand()

{

String cmd1= "cmd.exe /c start";

String location="C:\\PROGRA~1\\PostgreSQL\\8.3\\bin\\";

String postgresCommand="psql -h localhost -U postgres -d postgres";

String autoVaccum="-c \"vacuum verbose\"";

String []actualCmd={cmd1,location,postgresCommand,autoVaccum};

Process process=null;

try {

process = Runtime.getRuntime().exec(actualCmd);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

public static void main(String[] args) {

MyTest test= new MyTest();

test.executeCommand();

}但我得到了异常

java.io.IOException: Cannot run program "cmd.exe /c start": CreateProcess error=2, The system cannot find the file specified

at java.lang.ProcessBuilder.start(Unknown Source)

at java.lang.Runtime.exec(Unknown Source)

at java.lang.Runtime.exec(Unknown Source)

at MyTest.executeCommand(MyTest.java:36)

at MyTest.main(MyTest.java:48)

Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified

at java.lang.ProcessImpl.create(Native Method)

at java.lang.ProcessImpl.(Unknown Source)

at java.lang.ProcessImpl.start(Unknown Source)

... 5 more当我直接在Start-> Run窗口中直接输入上面的字符串时,它会成功执行

例如。

cmd.exe / C start C:\ PROGRA~1 / PostgreSQL / 8.3 / bin / psql -h localhost -U postgres -d postgres -c“vacuum verbose”

任何人都可以知道上述程序中究竟发生了什么问题吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值