【发布时间】:2018-10-15 02:44:28
【问题描述】:
我正在本地 (Linux) 和远程 Selenium 节点 (Windows) 上运行自动化测试。我想删除一个在测试期间创建的文件夹,使用 Java Runtime.getRuntime().exec。它在本地(Linux)上运行良好,但我很难弄清楚如何在 Windows 节点上做到这一点。以下是我的尝试:
try {
if (rBundle.getString("RUN_ON").equalsIgnoreCase("local")) // delete folder temp on local (Linux) - it works
Runtime.getRuntime().exec("rm -rf " + System.getProperty("user.home") + "/Temp");
else // delete folder C:/Temp on remote Windows
Runtime.getRuntime().exec("rm -rf IEUser@10.2.2.240/C/Temp");
// Runtime.getRuntime().exec("rm -rf //10.2.2.240/C/Temp");
} catch (IOException e) {
e.printStackTrace();
}
我尝试删除远程 Windows 上的文件夹 C:/Temp,但没有成功。我没有得到任何异常,它通过了那个块。显然命令行是错误的,但我不知道。
非常感谢任何帮助。谢谢
【问题讨论】:
-
你只需要找到一个可以在你的shell中运行的命令行,然后在你的Java代码中找到
exec()。这根本不是 Java 问题,而是 Linux 和 Windows 问题,而且可能更适合 superuser.com 的主题。 -
@EJP 感谢您的提示
-
基于 EJP 的评论,如果您真的希望能够从 Linux 机器上执行此操作,您可能希望在该机器上设置 Samba。
-
您可以尝试通过 ssh 执行命令,这将使命令成为
ssh IEUser@10.2.2.240 "rm -rf /C/Temp"。如果您的 Windows 机器上没有 ssh 服务器设置,则 cygwin 是一种可能的解决方案,其中包含许多在线设置指南。 -
当你说你在使用 Selenium 时,我假设你是在两个不同的服务器上测试一个网站,对吧?
标签: java linux windows shell delete-directory