相关疑难解决方法(0)

如何解决"java.io.IOException:error = 12,无法分配内存"调用Runtime #exec()?

在我的系统上,我无法运行启动进程的简单Java应用程序.我不知道该怎么解决.

你能给我一些如何解决的提示吗?

该计划是:

[root@newton sisma-acquirer]# cat prova.java
import java.io.IOException;

public class prova {

   public static void main(String[] args) throws IOException {
        Runtime.getRuntime().exec("ls");
    }

}
Run Code Online (Sandbox Code Playgroud)

结果是:

[root@newton sisma-acquirer]# javac prova.java && java -cp . prova
Exception in thread "main" java.io.IOException: Cannot run program "ls": java.io.IOException: error=12, Cannot allocate memory
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:474)
        at java.lang.Runtime.exec(Runtime.java:610)
        at java.lang.Runtime.exec(Runtime.java:448)
        at java.lang.Runtime.exec(Runtime.java:345)
        at prova.main(prova.java:6)
Caused by: java.io.IOException: java.io.IOException: error=12, Cannot allocate memory
        at java.lang.UNIXProcess.<init>(UNIXProcess.java:164)
        at java.lang.ProcessImpl.start(ProcessImpl.java:81)
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:467)
        ... 4 more
Run Code Online (Sandbox Code Playgroud)

系统配置:

[root@newton sisma-acquirer]# java -version …
Run Code Online (Sandbox Code Playgroud)

java runtime.exec

66
推荐指数
7
解决办法
13万
查看次数

I/O概念刷新与同步

我遇到过这两个术语,我对它们的理解似乎相互重叠.Flush与缓冲区一起使用,同步用于讨论文件到磁盘的持久更改.

在C中,fflush(stdin)确保清除缓冲区.并且fsync持久化将文件更改为磁盘.

如果这些概念不是普遍定义的,那就更喜欢linux,java的解释.

我发现了一个相关的帖子,但是我并没有真正回答我的问题.真的在Java中强制文件同步/刷新

java file-io operating-system

35
推荐指数
1
解决办法
2万
查看次数

标签 统计

java ×2

file-io ×1

operating-system ×1

runtime.exec ×1