首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从Java进程运行时找不到mount.exe

从Java进程运行时找不到mount.exe
EN

Stack Overflow用户
提问于 2013-03-08 00:11:42
回答 2查看 7K关注 0票数 3

我正在尝试将mount命令作为Java进程执行。下面是我如何形成这个命令的:

代码语言:javascript
复制
List<String> command = new ArrayList<String>();

command.add("cmd.exe");
command.add("/c");
command.add("mount.exe");
command.add("-u:" + username);
command.add("-p:" + password); 
command.add(IP + ":" + mountPoint);
command.add(driveLetter + ":");

ProcessBuilder processBuilder = new ProcessBuilder(command);

processBuilder.redirectErrorStream(true);
Process process = processBuilder.start();

当我执行这段代码时,我得到的错误是,

代码语言:javascript
复制
'mount.exe' is not recognized as an internal or external command,
operable program or batch file.

我已经安装了mount.exe,并且在环境变量中设置了路径。

代码语言:javascript
复制
C:\>where mount.exe
C:\Windows\System32\mount.exe

C:\>path
PATH=C:\Windows\System32;C:\Windows; ... [removed the remaining entries]

当我在命令提示符下手动执行该命令时,它工作正常:

代码语言:javascript
复制
C:\>cmd.exe /c mount.exe -u:<user> -p:<password> <IP>:<mount point> Z:

如果有人能指出我遗漏了什么,我将不胜感激。

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2013-04-04 16:08:44

我在Windows Server2008 x64上通过TeamCity构建代理(作为服务运行,以系统用户身份运行)运行安装和卸载时遇到了相同的问题。当我通过单击.cmd文件从用户会话中运行脚本时,它工作得很好,但是当TeamCity构建代理试图运行它时,我看到了完全相同的错误:

'C:\Windows\System32\umount.exe‘未被识别为内部或外部命令

现在我有了解决方案。

由于会在C:\Windows\System32\中搜索挂载,因此当您使用C:\Windows\System32\cmd.exe运行挂载时,挂载cmd将工作于

当您使用c:\Windows\SysWOW64\cmd.exe运行挂载时,挂载SysWOW64会失败,因为此命令会在c:\Windows\SysWOW64\中搜索挂载

票数 1
EN

Stack Overflow用户

发布于 2013-03-08 00:25:53

看看在command.add()调用中编写mount.exe的完整路径时会发生什么。关于这一点,我可能是错的,但我认为,当您自己从命令提示符内调用cmd.exe时,环境变量会自动传递给被调用的程序。使用ProcessBuilder时,这可能不会正确发生,如果完整路径正常工作,可能就表明了这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15276071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档