java - 线程中出现异常 "JavaFX Application Thread"java.lang.OutOfMemoryError : Java heap space

标签 java eclipse multithreading javafx

当我使用 javaFx 应用程序时间较长时,我会遇到如下异常,并且我的应用程序运行速度非常慢。

线程“JavaFX 应用程序线程”中出现异常 java.lang.OutOfMemoryError:Java 堆空间 在 java.util.Arrays.copyOfRange(Arrays.java:2694) 在 java.lang.String.(String.java:203) 在 java.lang.StringBuilder.toString(StringBuilder.java:405)\ ...

虚拟机参数是:

-XstartOnFirstThread

-XX:MaxPermSize=256m

-Xms128m

-Xmx512m

如何解决这个异常?

谢谢。

最佳答案

Java 应用程序可以使用有限的内存。此限制是在应用程序启动期间指定的。为了使事情变得更复杂,Java 内存被分为两个不同的区域。这些区域称为堆空间和永久代。

这些区域的大小是在 Java 虚拟机 (JVM) 启动期间通过指定 -Xmx-XX:MaxPermSize 等参数来设置的。在您的情况下,您通过指定 -Xmx 参数允许堆大小增长到 512m。

因此,当您尝试向堆空间区域添加更多数据,但没有足够的空间时,将会触发“java.lang.OutOfMemoryError: Java heap space”错误。

第一个解决方案简单明了 - 当您用完特定资源时,您应该增加此类资源的可用性。在您的情况下:当您的应用程序没有足够的 Java 堆空间内存来正常运行时,修复它就像在 JVM 启动配置中增加堆空间一样简单,例如增加到 1GB,如下所示:

-Xmx1024m

关于java - 线程中出现异常 "JavaFX Application Thread"java.lang.OutOfMemoryError : Java heap space,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26606164/

相关文章:

java - 使用状态来管理 onTouchEvent

java - Raspberry PI GPIO Java 代码错误

JAVA,根据添加的月份输入正确的日期

c - 线程在pthread_create之后立即执行?

java - 导入 com.sun.org.apache.xpath.internal.operations 时出现问题

java - 如何制作一个 TextView ,根据单击的按钮来更改其内容? (安卓, eclipse )

php - Eclipse 输出到 WAMP 网络服务器 www 文件夹

java - 使用 Eclipse Helios 进行 Web 项目

java - 对 Java 多线程网络应用程序进行单元测试

c++ - 现代 CPU 中的多线程旧式应用程序