我正在尝试编写一个 Java 应用程序,它应该使用一些参数调用一个 exe 文件并处理输出。我尝试了几种变体的 Runtime.getRuntime().exec() 以及 ProcessBuilder 类,但没有任何效果 - 它说它找不到文件,尽管路径环境变量是正确的。
出于想法,我尝试了以下方法:
File f = new File("C:\\Windows\\system32\\query.exe");
System.out.println(f.exists());
它说false
。
我想,也许路径有问题(反斜杠?大写?)并尝试了以下操作:
FileChooser chooser = new JFileChooser("C:\\Windows\\System32");
chooser.setFileHidingEnabled(false);
chooser.showOpenDialog(null);
File f = chooser.getSelectedFile();
System.out.println(f.exists());
文件没有显示在FileChooser中(如果我在FileChooser中手动输入,结果false
又是)。但我已经仔细检查过,它就在那里。我现在打开了资源管理器窗口。我可以从 cmd.exe 中启动它。where query
打印C:\\Windows\\System32\\query.exe
。
我认为这可能与访问权限有关,但我已经将查询文件的安全设置与其他可见的进行了比较;他们是一样的。我以管理员身份运行 Eclipse,结果相同。这里发生了什么?