Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Linux环境中使用Java中的Runtime.getRuntime().exec执行命令时出现内存泄漏问题_Java_Linux_Apache - Fatal编程技术网

在Linux环境中使用Java中的Runtime.getRuntime().exec执行命令时出现内存泄漏问题

在Linux环境中使用Java中的Runtime.getRuntime().exec执行命令时出现内存泄漏问题,java,linux,apache,Java,Linux,Apache,我使用下面的代码从Java运行Linux命令,但是我得到了内存泄漏错误。PFA错误和代码。如果你已经面对这个问题,请给我一些解决方案 at java.lang.ProcessBuilder.start(ProcessBuilder.java:1042) at java.lang.Runtime.exec(Runtime.java:615) at java.lang.Runtime.exec(Runtime.java:448) at java.lan

我使用下面的代码从Java运行Linux命令,但是我得到了内存泄漏错误。PFA错误和代码。如果你已经面对这个问题,请给我一些解决方案

at java.lang.ProcessBuilder.start(ProcessBuilder.java:1042)
        at java.lang.Runtime.exec(Runtime.java:615)
        at java.lang.Runtime.exec(Runtime.java:448)
        at java.lang.Runtime.exec(Runtime.java:345)
        at com.comcast.xarc.services.XarcHomeService.executeCommandLine(XarcHomeService.java:160)
        at com.comcast.xarc.struts.action.XarcHomeAction.execute(XarcHomeAction.java:1095)
        at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:722)
Caused by: java.io.IOException: error=2, No such file or directory
        at java.lang.UNIXProcess.forkAndExec(Native Method)
        at java.lang.UNIXProcess.<init>(UNIXProcess.java:135)
        at java.lang.ProcessImpl.start(ProcessImpl.java:130)
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1023)
        ... 27 more
May 05, 2015 3:17:12 AM org.apache.coyote.AbstractProtocol pause
INFO: Pausing ProtocolHandler ["http-bio-8080"]
May 05, 2015 3:17:12 AM org.apache.coyote.AbstractProtocol pause
INFO: Pausing ProtocolHandler ["ajp-bio-8009"]
May 05, 2015 3:17:12 AM org.apache.catalina.core.StandardService stopInternal
INFO: Stopping service Catalina
log4j: setFile called: C:/2015-05-05/2015-05-05.log, false
log4j: setFile ended
log4j: setFile called: C:/2015-05-05/2015-05-05.log, false
log4j: setFile ended
May 05, 2015 3:17:14 AM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: The web application is still processing a request that has yet to finish. This is very likely to create a memory leak. You can control the time allowed for requests to finish by using the unloadDelay attribute of the standard Context implementation.
May 05, 2015 3:17:14 AM org.apache.coyote.AbstractProtocol stop
INFO: Stopping ProtocolHandler ["http-bio-8080"]    

你的问题的根本原因是

Caused by: java.io.IOException: error=2, No such file or directory
    at java.lang.UNIXProcess.forkAndExec(Native Method)
    at java.lang.UNIXProcess.<init>(UNIXProcess.java:135)
    at java.lang.ProcessImpl.start(ProcessImpl.java:130)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1023)
原因:java.io.IOException:error=2,没有这样的文件或目录
位于java.lang.UNIXProcess.forkAndExec(本机方法)
位于java.lang.UNIXProcess(UNIXProcess.java:135)
在java.lang.ProcessImpl.start(ProcessImpl.java:130)
位于java.lang.ProcessBuilder.start(ProcessBuilder.java:1023)

问题是由于您试图运行的脚本命令,它正在查找无效目录,而您得到的
IOException
不存在此类文件或目录。确保提供了正确的路径并再次尝试启动apache

错误“不存在这样的文件或目录”是由错误的文件夹引起的。即使命令执行成功,我也会遇到内存泄漏问题。问题在于runtime.exec。如果你能建议一些替代方案,那就太好了。你正在运行多少个apache实例?apache使用的端口是否已与其他进程共享。。?运行多个apache实例会导致问题..并指定您的系统内存和apache进程消耗的内存量您知道如何检查apache实例的数量吗?@sathurya by instances我指的是您在系统中安装的“apache程序”的数量..如果您一次启动了多个apache时间会导致内存泄漏问题..因为运行apache的一个实例会消耗更多内存(RAM)以及apache使用的端口..检查该端口是否与其他应用程序共享..请更新完整的类代码和异常堆栈跟踪。。
Caused by: java.io.IOException: error=2, No such file or directory
    at java.lang.UNIXProcess.forkAndExec(Native Method)
    at java.lang.UNIXProcess.<init>(UNIXProcess.java:135)
    at java.lang.ProcessImpl.start(ProcessImpl.java:130)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1023)