OutOfMemoryError:远程Windows机器上的Java堆空间

时间:2015-09-17 13:18:01

标签: out-of-memory heap-memory

我已经开发了一个java程序,我已经部署在远程机器上,它安装了最新的jre1.8.0_60。我用jdk1.8.0_60开发了程序。我已经在我的机器上测试了程序(内存6GB-64bit)和我的同事计算机(内存8GB-64bit)并且程序执行没有任何问题但是当我在远程机器上执行相同的程序(内存4GB-64BIT)时它会抛出这个错误:

   java.lang.OutOfMemoryError: Java heap space
   Dumping heap to java_pid3696.hprof ...
   Heap dump file created [217326007 bytes in 2.721 secs]
    Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
    at java.util.Arrays.copyOfRange(Unknown Source)
    at java.lang.String.<init>(Unknown Source)
    at java.lang.StringBuilder.toString(Unknown Source)
    at Invoice.GetInvoicesByStatusAndDate(Invoice.java:66)
    at ClientSAAJ.GetInvoicesByStatusAndDate(ClientSAAJ.java:75)
    at ClientSAAJ.main(ClientSAAJ.java:10)

可能是没有足够的内存或我是否进行了某种java配置?

2 个答案:

答案 0 :(得分:0)

您的程序没有足够的内存来运行。您可以使用-Xmx jvm选项设置最大堆大小。

e.g。如果您的程序是可执行jar,要分配最大80MB,您可以使用

$java -Xmx80m -jar executatable.jar

有关详细信息,请参阅https://docs.oracle.com/javase/8/docs/technotes/tools/windows/java.html

答案 1 :(得分:0)

@curiousprgrammer,我将-Xmx80m设置为-Xmx1028m,似乎问题更多的是jvm然后是实际的pysical内存。