imageIO.read invoke 错误
imageIO.read() 超大图片上传出现的问题(异常:InvocationTargetException)。
?
这个问题是内存太低导致
设置内存前内存情况:
JVM MAX MEMORY: 64M
JVM IS USING MEMORY:64M
?
?
设置内存后内存情况:
JVM MAX MEMORY: 508M
JVM IS USING MEMORY:508M
?
另:
eclipse 结合tomcat 内存设置和tomcat 独立启动内存设置
1:
Eclipse->Window->Preferences->Server->Runtime Environments->选中Apache Tomcat v5.0->点击Edit按钮->在弹出对话框里点击JRE后面的Installed JREs按钮->在弹出对话框中选中tomcat使用的那个JRE->点击Edit按钮
?
->在弹出对话框中,找到Default VM Arguments,并在输入框中输入:-Xms512M -Xmx512M
?
?
2:
在tomcat/bin 下找到 catalina.bat 文件打开,再找到 ?set JAVA_OPTS = -Xms512M -Xmx512M
?
?
?
关于堆内存分配:
JVM初始分配的内存由-Xms指定,默认是物理内存的1/64;JVM最 大分配的内存由-Xmx指定,默认是物理内存的1/4。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时, JVM会减少堆直到
?
-Xms的最小限制。因此服务器一般设置-Xms、-Xmx相等以避免在每次GC 后调整堆的大小。