Runtime.exec()方法在Spring环境中始终返回空
我尝试在Spring应用程序中执行Runtime.exec()方法在Spring环境中始终返回空,spring,spring-mvc,java-8,apache-commons,Spring,Spring Mvc,Java 8,Apache Commons,我尝试在Spring应用程序中执行Runtime.exec(…)方法,然后总是从getInputStream()方法获得空结果。但是,如果我作为一个核心java应用程序执行,那么它工作得很好。是否需要在Spring环境中执行其他实现?提前谢谢 Spring版本:4.2.1.0版本 commons io版本:2.4 try { Process p = Runtime.getRuntime().exec(new String[] {"sh", "-c", "spamc < abcd.
Runtime.exec(…)
方法,然后总是从getInputStream()
方法获得空结果。但是,如果我作为一个核心java应用程序执行,那么它工作得很好。是否需要在Spring环境中执行其他实现?提前谢谢
- Spring版本:4.2.1.0版本
- commons io版本:2.4
try { Process p = Runtime.getRuntime().exec(new String[] {"sh", "-c", "spamc < abcd.txt"}); String spamResponsexx = IOUtils.toString(p.getInputStream()); log.debug("Spam Response : " + spamResponsexx); } catch (Exception e) { e.printStackTrace(); log.error("", e); }
试试看{ 进程p=Runtime.getRuntime().exec(新字符串[]{“sh”、“-c”、“spamc
- 在这种情况下,两个服务应作为同一用户(XYZ)运行
- 否则,“spamc”库文件位置应指向您的用户(XYZ)主路径“.bashrc”和重置“.bashrc”
- 可能是用户权限问题。我也在类似的场景中工作过
您还应该查看错误流(
p.getErrorStream()
),该流上可能有一条消息。spring不太可能与您感知到的问题有关。可能当前目录不同,因此找不到abcd.txt
(或另一个名为abcd.txt
)的文件…