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

本文介绍了如何解决在Java中使用runtime.exec运行命令行时出现的错误代码193问题,通过在命令前添加'cmd /c'作为跳板,并讨论了不同Windows版本下命令行参数的差异。

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

写一个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\"";
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值