当前位置: 首页 > 面试题库 >

Java Runtime.getRuntime()。exec()调用数百次后失败

蒲深
2023-03-14
问题内容

我有一个执行Runtime.getRuntime()。exec(“ ls -l”);的Java程序。很多次,对于系统中的每个目录一次。

我的测试系统有1000多个目录和Runtime.getRuntime()。exec(“ ls -l”);
似乎在480个目录后出错。我收到的错误消息是“运行exec()时出错。命令:[ls,-l]工作目录:空环境:空”。我猜它已经用完了一些必需的系统资源,或者是吗?有什么方法可以处理所有目录而不会出错吗?

来自答案的相对评论:

我应该澄清一下,我正在使用Android SDK的adb.exe。我想在不同的目录上多次执行Runtime.getRuntime()。exec(“
adb shell ls -l”)之类的东西。


问题答案:

使用时,您应该明确关闭输入/输出流Runtime.getRuntime().exec

Process p = null;
try {
    p = Runtime.getRuntime().exec("ls -l");
    //process output here
    p.waitFor();
} finally {
    if (p != null) {
        p.getOutputStream().close();
        p.getInputStream().close();
        p.getErrorStream().close(); 
    }
}


 类似资料:
  • 我正在使用java执行一个curl命令。 我想在我的代码中获取这个curl命令的输出,但是我的stdoutout是空的。 尝试手动执行curl命令,工作正常。然后我打印了标准误差,我可以看到: 当curl命令被手动执行时,它工作得很好,那么为什么不通过Runtime.getRuntime()呢? 请建议!!任何帮助将不胜感激。

  • 我试图运行两次MOJO的exec-maven-plugin,但它抱怨主类没有设置。有了这个我的。Main我想生成几个文件,它们必须在编译阶段之前完成。我做错了什么?为两次执行都设置了主类,并具有正确的参数。 我的pom.xml包含以下内容: 跑步后 我得到这个错误 向你问好,SK

  • 问题内容: 我正在使用 PhoneGap 开发移动应用程序,并且必须 从另一个项目 访问某些 服务 。我正在使用 jquery-2.0.0.js 和 jquery-mobile-1.3.2.js 。 这个ajax调用每次都会失败。在 config.xml中, 我有以下几行: 我可能在哪里错了! 问题答案: 问题在于您的phonegap应用程序正在从非网络服务器请求本地文件。本地文件交付时没有HTT

  • 我正在运行以下程序。它只会创建直接消亡的线程。 我发现,在93到98次(略有不同)成功调用之后,对pthread\u create()的下一次调用都会失败,错误为11:资源暂时不可用。我认为我正在正确关闭线程,因此它应该放弃它拥有的任何资源,但有些资源变得不可用。 程序的第一个参数允许我设置调用pthread\u create()的间隔,但通过使用不同的值进行测试,我了解到间隔并不重要(好吧,我会

  • 到目前为止,我做到了: 我的Ajax1函数返回ajax对象。我的等待函数看起来像这样: 问题是第二个ajax请求函数(Ajax2)并没有等待等待函数!编辑:我也试过: 什么也没变。从jQuery文档: 在将多个延迟对象传递给jQuery.when的情况下,该方法将从新的“master”返回promise“延迟对象,跟踪已传递的所有延迟的聚合状态。当所有延迟被解决时,该方法将立即解决其主延迟,或者当

  • 问题内容: 我有一个带有Java Applet的网站,该Applet需要连接到我的服务器。这在JApplets @Override init()中有效,但不适用于javascript调用的我自己的函数中。 网站: 输出: 我尝试通过System.out调用解决它,但是那里也没有任何反应。但是,这绝对可以: 哦,小程序当然也来自 我该如何解决或解决它? 问题答案: 尝试以下方法: