我正在调用cmd to excute java
,但resultcode
始终为1,经过检查后,我发现它代表'错误的功能'。
我的代码就像:
Exec('cmd', '/c C:\Program Files\jre\bin\java -version','' , SW_HIDE, ewWaitUntilTerminated, ResultCode);
我也打电话,以下代码,它也不起作用:
Exec('cmd', '/c "C:\Program Files\jre\bin\java -version"','' , SW_HIDE, ewWaitUntilTerminated, ResultCode);
如果我调用以下代码,它可以正常工作
Exec('cmd', '/c java -version','' , SW_HIDE, ewWaitUntilTerminated, ResultCode);
似乎无法识别java路径中的空格。有谁知道如何纠正它?
答案 0 :(得分:3)
由于文件路径中的空格未被双引号括起,您的第一次尝试失败。您的第二次尝试失败,因为除了文件路径和传递的参数-version
之外,您还附加了双引号。并且,在这两种情况下,您都缺少应用程序路径末尾的.exe
。
您可以这样尝试:
Exec('cmd', '/c ""C:\Program Files\jre\bin\java.exe" -version"', '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
但是,我在这里错过了通过cmd
shell执行它的原因。我想你可以通过这种方式调用java.exe
直接做到这一点:
Exec('C:\Program Files\jre\bin\java.exe', '-version', '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
只有一个offtopic note,您确定java.exe
将始终位于C:\Program Files\jre\bin\
吗?