使用Runtime去运行命令行 CreateProcess error=193, %1 不是有效的 Win32 应用程序。

写一个idea的插件,去运行命令行。

runtime.exec(“ionic -v”)
但是报错:
java.io.IOException: CreateProcess error=193, %1 不是有效的 Win32 应用程序。

百度到解决方案:方案
运行的命令行前面添加:

runtime.exec(“cmd \c ionic -v”);

下面是参考过来的:

错误代码2一般都是由于路径问题没有找到指定的程序文件:

java.io.IOException: Cannot run program "your command": CreateProcess error=193, %1 ??????Ч?? Win32 ??ó

错误代码193是运行了一个不信任的程序. 当你充分信任你的程序时候你可以使用cmd作为跳板

Runtime.getRuntime().exec("cmd /c [your command]");

问题就解决了.
另外就是各个操作系统的差异导致的命令行识别参数问题最好用标准的格式全部都用引号括起来
比如Windows Server 2008 可以这样用
String comm = "cmd /c mypro e:\case.ppt";
到了Windows Server 2003就不支持必须写成
String comm = "cmd /c mypro e:/case.ppt";
所以为了不出错都写成
String comm = "\"cmd\" \"/c\" \"mypro\" \"e:\\case.ppt\"";

你可能感兴趣的:(ionic)