Java.lang.OutOfMemory错误 Java堆内存空间 JDeveloper

10
我正在使用Java编写应用程序,但出现了错误Java.lang.OutOfMemory Java Heap Space JDeveloper。我知道可以在命令行中添加java -Xmx512m来解决该问题。然而,我需要在JDeveloper上运行此应用程序。因此,我的问题是:

如何增加JDveloper上的堆大小?

谢谢, Sami


你可以从 JDeveloper 的运行对话框中打开某个位置。但是你确定要使用这个 IDE 吗? - Bozho
你可能想要检查一下应用程序中是否存在内存泄漏,仅仅扩大堆大小只能在一定程度上起到作用。你有一些很好的运行时分析工具,我使用JProfiler(www.ej-technologies.com)进行检查,同时我也测试过Yourkit(www.yourkit.com),它看起来相当不错。 - Ido Weinstein
谢谢,它可以工作了。我有一个内存泄漏问题,所以我不得不增加大小。 - Sami
3个回答

13

概述

JDeveloper内存耗尽的原因包括堆限制和大文件。

堆限制

控制JDeveloper在启动时为JVM分配的内存量的文件,相对于jdeveloper/ide/bin/目录,包括:

  • jdev.conf
  • ide.conf

按照以下方式更新这些文件:

  1. 退出JDeveloper。
  2. 编辑ide.conf
  3. 附加以下内容
    AddVMOption -Xms256M
    AddVMOption -Xmx1024M
    
  4. 编辑jdev.conf
  5. 找到“堆大小”的AddVMOption
  6. 更改值如下:
    AddVMOption -Xmx1024M
    AddVMOption -XX:MaxPermSize=1024M
    

大文件

JDeveloper天真地尝试解析位于项目根级目录中的具有已知文件扩展名的文件。一个足够大的文件,比如一个3GB的XML文件,会导致问题。要解决此问题,请为大数据创建一个子目录并将文件移动到其中。JDeveloper不会尝试在任意子目录中查找资源。


3
对于我的 jdev 11.1.1.7 版本,文件位于以下位置:jdev.conf - ..\jdeveloper\jdev\bin(我添加了 AddVMOption -XX:MaxPermSize=512M),以及 ide.conf - ..\jdeveloper\ide\bin(我添加了 AddVMOption -Xmx640M 和 AddVMOption -Xms256M)。 - Zavael

6

编辑 ${JDEV_HOME}\jdev\bin\jdev.conf 文件并设置以下选项:

AddVMOption -Xmx512M
AddVMOption -XX:MaxPermSize=512M

然后重新启动JDeveloper。


3
如果您尝试了上述选项后,jDeveloper仍无法启动,请将大小从1024减小到768或512。
在“ide.conf”中更改:
AddVMOption -Xms256M
AddVMOption -Xmx1024M

to

AddVMOption -Xms256M
AddVMOption -Xmx768M

如果这样也无法启动您的jDeveloper,请将其更改为:
AddVMOption -Xms256M
AddVMOption -Xmx512M

同样适用于“jdev.conf”。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接