如何处理java.lang.OutOfMemoryError

时间:2012-11-22 16:09:45

标签: java

我正在运行一个makefile,过了一会儿我收到以下错误:

 java.lang.OutOfMemoryError

我想知道是否有一个允许我增加的命令 Java堆空间。我不想改变makefile本身,所以我需要 某种“全局”命令,允许我重置Java堆空间。

非常感谢, 帕特里克

编辑:谢谢你的回答。但我正在寻找一个更全球化的命令 允许我指定一次性设置堆空间,如:

SET JAVA_HEAP_SPACE = 5GB

由于

3 个答案:

答案 0 :(得分:4)

  • 您可以从命令行设置java堆空间:java -Xmx1600m program现在您的堆空间为1600 MB。(假设您的硬件已经可以承受1600MB。)

  • 对于Windows平台,您可以从 Java运行时环境进行设置 设置 。关注控制面板=>程序=>爪哇。导航到Java选项卡。查看Java运行时环境设置。将-Xmx1600m添加到运行时参数。保存并继续。

  • 对于Linux平台,您可以启动“控制面板”并编辑运行时参数。它可以从/usr/j2se/jre/bin/ControlPanel之类的东西运行。找到你自己的目录。请在此处阅读:http://docs.oracle.com/javase/7/docs/technotes/guides/deployment/deployment-guide/jcp.html

答案 1 :(得分:1)

您可以使用以下命令:

java -Xms64m -Xmx256m ClassName
Xms<size>        set initial Java heap size
Xmx<size>        set maximum Java heap size

在此示例中,初始堆大小设置为64MB,最大堆大小设置为256MB。有关详细信息,请查看this

答案 2 :(得分:0)

问题不是很清楚但是您应该将-Xmx标志视为JVM启动参数,以便为您的应用程序提供更多可用内存。有关详细信息,请阅读here。您还应该对Java应用程序进行概要分析,并查看大部分可用内存的使用情况。您可以使用JProfiler(只是谷歌关于用于分析Java应用程序的工具)来分析并查看有关应用程序的哪个部分消耗更多系统资源的统计信息。