1

我已经为 Windows 2008 安装了 NFS,但是当我尝试访问 C:/Windows/System32/mount.exe 或 umount.exe 并在 Java 中执行它时,我得到一个找不到文件的 IO 异常。

Runtime.getRuntime().exec("C:/Windows/System32/mount.exe <location> J:");

如果您认为它可能,这也不起作用:

Runtime.getRuntime().exec("cmd.exe /C call C:/Windows/System32/mount.exe <location> J:");

该文件甚至不会通过 Java 注册为现有文件

if(new File("C:/Windows/System32/mount.exe").exists())
    System.exit(0);
else
    System.exit(-1);

此代码将始终退出 -1

我一遍又一遍地验证该文件确实存在并且我的命令有效。到底是怎么回事?如何通过 Java for Windows 挂载 NFS 驱动器?

java.io.IOException: Cannot run program "C:/Windows/System32/mount.exe": CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessBuilder.start(Unknown Source)
at Data.SystemExecutor.exec(SystemExecutor.java:46)
at Data.SystemExecutor.exec(SystemExecutor.java:18)
at Mount.Mount.setMount(Mount.java:40)
at Mount.Mount.<init>(Mount.java:30)
at Main.Main.main(Main.java:94)
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(Unknown Source)
at java.lang.ProcessImpl.start(Unknown Source)
... 6 more

我也尝试以管理员身份运行 CMD

4

2 回答 2

2

这听起来像是位数的问题(即,运行 32 位版本的 Java 并安装了 64 位版本的 SUA)。C:\Windows\System32为 32 位应用程序重定向到C:\Windows\SYSWOW64. 看到这个问题

于 2012-04-05T02:24:21.187 回答
0

尝试创建一个执行“java yourClass”并以管理员身份运行的 .bat 文件。可能是windows中的权限设置。

于 2012-04-05T02:01:27.697 回答