Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java eclipse中内存不足错误。为什么?_Java_Eclipse_Myeclipse - Fatal编程技术网

Java eclipse中内存不足错误。为什么?

Java eclipse中内存不足错误。为什么?,java,eclipse,myeclipse,Java,Eclipse,Myeclipse,当我在“Eclipse”IDE中创建一个新项目时,它突然显示一条警告消息“内存不足错误”。我无法确定原因。 如果有人知道原因,请告诉我。尝试使用以下参数启动eclipse: eclipse.exe -vmargs -Xms512m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=128m 或者根据您的需求调整这些参数最明显的解释是,您的内存确实不足。在这种情况下,使用更大的堆启动Eclipse应该会有所帮助 -vmargs -Xmx256M 改变256

当我在“Eclipse”IDE中创建一个新项目时,它突然显示一条警告消息“内存不足错误”。我无法确定原因。
如果有人知道原因,请告诉我。

尝试使用以下参数启动eclipse:

eclipse.exe -vmargs -Xms512m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=128m

或者根据您的需求调整这些参数

最明显的解释是,您的内存确实不足。在这种情况下,使用更大的堆启动Eclipse应该会有所帮助

 -vmargs -Xmx256M
改变256M,看看什么适合你


如果你只有几个简单的项目,我不希望看到这个问题。如果您正在使用其他插件,那么可以想象,您需要的堆数量可能需要增加。

不确定是否与您的问题相关,但我刚刚遇到了一个使用OpenJDK 7的Swing项目的类似问题

在启动(运行按钮)和关闭(
'X'
/
Alt+F4
)我的应用程序的几个周期后,我在控制台中遇到了以下错误:

Exception in thread "main" java.lang.OutOfMemoryError: unable to create new native thread
    at java.lang.Thread.start0(Native Method)
    at java.lang.Thread.start(Thread.java:691)
    at sun.awt.AWTAutoShutdown.activateBlockerThread(AWTAutoShutdown.java:334)
    at sun.awt.AWTAutoShutdown.notifyPeerMapUpdated(AWTAutoShutdown.java:215)
    at sun.awt.AWTAutoShutdown.registerPeer(AWTAutoShutdown.java:348)
    at sun.awt.SunToolkit.targetCreatedPeer(SunToolkit.java:313)
    at sun.awt.X11.XToolkit.createFrame(XToolkit.java:410)
    at java.awt.Frame.addNotify(Frame.java:477)
    at java.awt.Window.show(Window.java:1031)
    at java.awt.Component.show(Component.java:1651)
    at java.awt.Component.setVisible(Component.java:1603)
    at java.awt.Window.setVisible(Window.java:1014)
    at tool.BAT.main(BAT.java:11)
有时,我会犯另一种错误:

Error occurred during initialization of VM
java.lang.OutOfMemoryError: unable to create new native thread
然后,如果我再次尝试运行它,Java崩溃了:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x0000000000000000, pid=30388, tid=139776854689536
#
# JRE version: 7.0_07-b30
# Java VM: OpenJDK 64-Bit Server VM (23.2-b09 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C  0x0000000000000000
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /home/mcmlxxxvi/workspace/bat/hs_err_pid30388.log
#
# If you would like to submit a bug report, please include
# instructions on how to reproduce the bug and visit:
#   http://icedtea.classpath.org/bugzilla
#
top
揭示了问题的原因(请注意虚拟内存使用情况):

这些都是我尚未关闭的应用程序的实例。仍然不确定为什么每个实例分配了这么多虚拟内存-可能有一些选择。(顺便说一下,我有3GiB的物理内存)

下面是我的main()方法:

我在教程中看到了注释行,并专门禁用了它,以查看会发生什么。发生的情况是,它默认设置为
在关闭时隐藏
,这不会关闭和处理帧

setDefaultCloseOperation
设置为关闭时退出是我的解决方案。不过,我有兴趣看到更多知识渊博的人在这方面的意见

  • 转到Eclipse安装文件夹
  • 如果您在MacOSX上运行Eclipse,那么

    右键单击eclipse.app图标

    单击
    Show Package Contents

  • 打开
    eclipse.ini
    文件

  • 更改以下参数

    -Xms512m
    -Xmx3000m (Hoping your developer box has >4GB of memory)
    
    -XX:PermSize=256m
    -XX:MaxPermSize=512m
    
  • 添加以下参数

    -Xms512m
    -Xmx3000m (Hoping your developer box has >4GB of memory)
    
    -XX:PermSize=256m
    -XX:MaxPermSize=512m
    
    • 打开eclipse.ini文件
    • XXMaxPerm的尺寸为256m
    • 将该值更改为512m
    • 重新启动eclipse
    • 现在您将不会在Eclipse中看到任何内存问题
    简言之,见下文: 之前

    --launcher.defaultAction
    openFile
    --launcher.XXMaxPermSize
    256M
    -showsplash
    org.eclipse.platform
    --launcher.XXMaxPermSize
    256m
    
    之后:

    --launcher.defaultAction
    openFile
    --launcher.XXMaxPermSize
    512M
    -showsplash
    org.eclipse.platform
    --launcher.XXMaxPermSize
    512m
    

    您必须使用
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)


    总是吗?同样的项目?你的工作空间有多大?很多项目?你有多少内存?您应该拥有至少4GB的RAM,以使Eclipse平稳运行。如果堆设置太小,即使拥有400GB的RAM也没有帮助。有关每个参数的解释,请参阅。Eclipse 8.0中删除了PermSize和MaxPermSize支持。不确定为什么会否决这一点。我和OP有同样的问题,在启动参数中已经增加了内存。发现在打开/关闭Swing窗口后打开了许多java进程,尝试了此建议,现在它已正确关闭。在更高版本(8.0+)中似乎不支持PermSize和MaxPermSize<代码>Java热点(TM)64位服务器VM警告:忽略选项PermSize=256m;在8.0 Java HotSpot(TM)64位服务器VM中删除了支持警告:忽略选项MaxPermSize=512m;支持已在8.0中删除