【发布时间】:2023-04-04 02:20:01
【问题描述】:
好的,所以我已经四处寻找了一段时间,但我无法弄清楚我的程序出了什么问题。我正在尝试制作一个类似 cmd.exe 的程序。一个命令应该启动位于 C:/Windows/System32 中的 msconfig.exe。但它给了我一个 java.io.IOException:
java.io.IOException: Cannot run program "C:/Windows/System32/msconfig.exe": CreateProcess error=2, The system cannot find the file specified
这是我的代码:
public static void msconfig() {
try {
Runtime rt = Runtime.getRuntime();
Process process = rt.exec("C:/Windows/System32/msconfig.exe");
InputStream in = process.getInputStream();
OutputStream out = process.getOutputStream();
InputStream err = process.getErrorStream();
} catch (IOException e) {
Console.printToConsole("Could not launch msconfig.exe");
e.printStackTrace();
} finally {
Console.printToConsole("Successfuly launched msconfig.exe");
}
}
编辑: 所以我用 Eclipse 导出了应用程序,现在它可以正常工作了!谢谢所有试图帮助我的人:)
【问题讨论】:
-
首先,我认为您还没有理解“finally”的工作原理。 finally 是一个语句,用于指示应该始终完成的事情,无论 try 块是成功完成还是抛出异常。您在 finally 中的打印语句应该是 try 中的最后一条语句。
-
奇怪。这个对我有用。我想知道这可能与本地管理员权限有关吗?当然,最明显的检查是文件是否存在。 :-)
-
@maksimov 我做了,我用过很多次,我知道该文件存在,因为 1)我在目录中看到它 2)您可以将目录复制并粘贴到 Windows 资源管理器中并且应用程序启动。
-
@Ina 抱歉,我之前没有使用 finally 块。我只是在试验它,而我只写了大约 9 个月的代码。
-
@whowantsakookie 不用道歉,我们就是这样学习的!祝你好运
标签: java command-line command execute