java.io.IOException : Cannot run program "plink": CreateProcess error=2, 系统找不到指定的文件

标签 java tomcat servlets

我正在 Servlet 类doPost() 方法中执行一个命令,它在 Tomcat 上运行。

命令是:

plink -pw **** username@hostname tail -1000 /temp/info.txt

当我在 Windows 控制台上运行该命令时运行良好,但在 servlet 中执行时它会抛出此错误。

java.io.IOException: Cannot run program "plink": CreateProcess error=2, The system cannot find the file specified

我尝试通过 Runtime.getRuntime().exec(command) 以及通过

执行命令

ProcessBuilder pb = new ProcessBuilder("plink", "-pw", "***","username@hostname","tail","-1000","/temp/info.txt")

最佳答案

当程序通过某些中间角色运行时,用户的环境通常不会生效,因为 shell 的 PATH 是在 .bashrc 中设置的,每个新 shell 都会重新执行。

因此,例如,Java 进程甚至不运行 shell,因此不会在 PATH 的目录中进行搜索。

在这个系统上通过 Process 运行的程序和在另一个系统上通过远程执行服务运行的程序使用完整路径名。

关于java.io.IOException : Cannot run program "plink": CreateProcess error=2, 系统找不到指定的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33453838/

相关文章:

java - 使用 Jsoup 和适当的 cookie 登录 Facebook

jsf - 从 Facelets 调用 servlet 的正确方法?

java - 为 Servlet 设置 SimpleJdbcTemplate

java - 不能在一个简单的例子上使用 JSTL

java - 定期更新 WEB-INF 中的文件而不重新启动应用程序 - Google App Engine

java - 随机数的对称二维数组

javascript - 当从不同系统/浏览器同时调用同步方法时,两条记录会插入数据库中

java - android: listpreference setOnPreferenceClickListener 错误

scala - 在 Scala 和 Tomcat 中使用 TriMap 的潜在内存泄漏

php - 访问控制允许源服务器端由 php