加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

使用Runtime.exec导致“系统无法找到指定文件”的原因是什么? (

发布时间:2020-12-15 08:46:11 所属栏目:Java 来源:网络整理
导读:有谁知道为什么这两个语句导致显示的异常? Runtime.getRuntime().exec("assoc .vlan="file type description"");Runtime.getRuntime().exec("ftype "file type description"=" + System.getProperty("user.home")+ "folder 1folder 2my executabl
有谁知道为什么这两个语句导致显示的异常?

Runtime.getRuntime().exec("assoc .vlan="file type description"");
Runtime.getRuntime().exec("ftype "file type description"=" + System.getProperty("user.home")+ "folder 1folder 2my executable.exe" /inject "%1"");

这是例外.

java.io.IOException: Cannot run program "assoc": CreateProcess error=2,The system cannot find the file specified
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
at java.lang.Runtime.exec(Runtime.java:615)
at java.lang.Runtime.exec(Runtime.java:448)
at java.lang.Runtime.exec(Runtime.java:345)

好吧,我已经改变了这个但仍然没有建立关联,而同一个命令是可执行的并且在cmd命令提示符下工作.

Runtime.getRuntime().exec("cmd.exe /c assoc .vlan="file type description"");
Runtime.getRuntime().exec("cmd.exe /c ftype "file type description"="" + System.getProperty("user.home") + "folder 1folder 2my executable.exe" /inject "%1"");

任何补充建议?谢谢!

解决方法

事实证明,assoc和ftype是内置的shell命令而不是可执行文件.复制,目录等也是如此.您可以使用/ c参数启动cmd.exe来传递命令行字符串,例如,cmd.exe / c assoc ….

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读