javac 编译器在 CentOS 5.7 中抛出错误

javac 编译器在 CentOS 5.7 中抛出错误

我正在尝试使用这个方法在 MediaTemple 中运行 CentOS 5.7 的 vps 上安装 Red5 (dv):安装Red5媒体服务器但在第 7 步我收到此错误:

BUILD FAILED
/usr/local/red5/build.xml:217: The following error occurred while executing this line:
/usr/local/red5/build.xml:238: Error running /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/bin/javac compiler

有办法修复吗?Google 和一些用户已经遇到过同样的问题,但没有人发布解决方案,或者从未解决过。

更新:更多详细信息:运行 ant -v dist 显示这是一个内存问题:

Caused by: java.io.IOException: Cannot run program "/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/bin/javac": java.io.IOException: error=12, Cannot allocate memory
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:475)
    at java.lang.Runtime.exec(Runtime.java:610)
    at org.apache.tools.ant.taskdefs.Execute$Java13CommandLauncher.exec(Execute.java:862)
    at org.apache.tools.ant.taskdefs.Execute.launch(Execute.java:481)
    at org.apache.tools.ant.taskdefs.Execute.execute(Execute.java:495)
    at org.apache.tools.ant.taskdefs.compilers.DefaultCompilerAdapter.executeExternalCompile(DefaultCompilerAdapter.java:522)
    ... 32 more
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:468)
    ... 37 more

我定义了 _JAVA_OPTIONS="-Xms64m -Xmx128m" 并导出 ANT_OPTIONS=-Xmx128m

我在两种情况下都尝试使用 Xmx512m,但没有成功。

谢谢!

答案1

你不需要使用 javac 来安装 Red5。我建议从以下网址下载 tarball:https://github.com/Red5/red5-server取消存档,然后运行 ​​red5.sh。这就是您需要做的全部工作。

答案2

检查 的读取和执行权限/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/bin/javac。确保它对每个人都具有读取和执行权限 ( chmod a+rx /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/bin/java)。

答案3

您的问题是 ant 需要启动一个新的系统进程来运行 javac。不幸的是,您没有足够的内存来启动新进程。修改 -Xmx128m 参数等只会为 ant 进程提供更多或更少的内存,而不是新的 javac 进程。

我的建议是增加你的机器上的交换空间。这应该允许你创建更多的进程。

相关内容