系统资源不足。有关详细信息,请参阅以下堆栈跟踪。Java.Lang.OutOfMemory错误使用Java和mysql
我得到以下错误。系统资源不足。有关详细信息,请参阅以下堆栈跟踪。Java.Lang.OutOfMemory错误使用Java和mysql,java,Java,我得到以下错误。 系统资源不足。有关以下详细信息,请参阅堆栈跟踪。java.lang.OutOf Memory错误使用java和mysql。我为我的项目创建了100个表。我正在尝试插入使用随机数概念随机生成的值。我可以更新25个表中的值,而不是100个表中的值。请帮助我解决错误。非常感谢。OutOfMemory错误意味着您分配的内存超出了JVM允许的范围。要做的第一件事是通过将以下参数传递给java,来增加最大堆大小: -Xmx1024m 这将把堆大小增加到1GB,而不是默认的64MB。随意调整
系统资源不足。有关以下详细信息,请参阅堆栈跟踪。java.lang.OutOf Memory错误使用java和mysql。我为我的项目创建了100个表。我正在尝试插入使用随机数概念随机生成的值。我可以更新25个表中的值,而不是100个表中的值。请帮助我解决错误。非常感谢。OutOfMemory错误意味着您分配的内存超出了JVM允许的范围。要做的第一件事是通过将以下参数传递给
java
,来增加最大堆大小:
-Xmx1024m
这将把堆大小增加到1GB,而不是默认的64MB。随意调整
您还需要确保代码没有内存泄漏。当您持有对不再需要的对象的引用时,就会发生内存泄漏。您可以从命令行增加Java进程的堆大小。尝试将
-Xmx512m
添加到命令行参数。这可能是因为内存泄漏。
确保完成以下操作可以避免内存泄漏
1 . All the statements and connections are closed after the use
2 . All the streams created are closed after use.
3 . All the close operations are done inside the finally block.
我无法提及内存泄漏的所有原因。以上几点可能会对你有所帮助。有些可疑的事情正在发生。
通常,当应用程序运行时发生OutOfMemoryError
时,消息如下所示:
Exception in thread "main" java.lang.OutOfMemoryError
at com.acme.GreatestProgramEver.main(Program.java:19)
特别是,没有显示“系统资源不足。有关详细信息,请参阅下面的堆栈跟踪”的消息,除非我们捕获异常并自行报告,确保输出这样的消息、正确的英语以及所有内容。我怀疑OP没有做这样的事
然而,我已经看到java编译器在内存不足时精确地显示该消息
这让我怀疑OP忘记了一个小细节:
运行时不会发生此错误。
编译过程中发生此错误。
因此,编译器需要更多内存
如果您正在使用IntelliJ IDEA:
通过在bin\idea64.exe.vmoptions
中为-Xmx
指定一个更高的数字来增加IntelliJ IDEA可用的内存量,这只会帮助IDE的内部编译器在键入时解析源文件,以便在编辑器中显示错误
为了在实际构建时增加可用内存量,您需要打开“选项”,转到“构建、执行、部署”->“编译器”,并在“构建进程堆大小(MB)”中指定一个较大的数字:
2000
即使对于大型项目也应该这样做
注意:所有提到内存泄漏的答案都是错误的,因为这个问题与编译器有关,而不是与代码有关。在编译器编译代码时,代码几乎不存在,更不用说分配内存了。因此,您的泄漏代码与此无关。您的命令行参数是什么?如果您碰巧使用IntelliJ,请查看此链接,了解如何增加内存堆: