使用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 ….
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |