【发布时间】:2018-10-25 19:35:00
【问题描述】:
在 Java 中,我尝试运行:Process p = Runtime.getRuntime().exec("C:\\Windows\\System32\\chgport.exe");
还有Process p = Runtime.getRuntime().exec("chgport.exe");
但得到以下异常:
java.io.IOException: Cannot run program "C:\Windows\System32\chgport.exe": CreateProcess error=2, 系统找不到指定的文件
我正在使用 NetBeans IDE,它使用管理员凭据运行。
【问题讨论】:
-
根据docs.oracle.com/javase/7/docs/api/java/lang/…,exec 不需要绝对/相对路径,而是命令
-
@dnsiv 我也试过不使用路径,但得到同样的错误。
-
你尝试过这样的事情吗?
String[] cmdArray = new String[]{"C:\Windows\System32\chgport.exe"}; Runtime.exec(cmdArray); -
@dnsiv 是的。使用“mspaint.exe”可以正常工作。更改为“chgport.exe”,然后找不到“chgport.exe”。我的 IDE 以管理员身份运行,并且“chgport.exe”无论如何都可以由用户执行。 “chgport.exe”文件有“一些东西”(而且似乎不是权限)。