前段时间运行matlab总是出现如下错误提示:
java.lang.OutOfMemoryError
在网上找了很久终于找到解决办法了,拿来分享一下,具体如下:
Java虚拟机内存不够用了.可以增加最大内存设置.
1. 查找matlab根路径.在matlab命令行中敲入:matlabroot
显示根路径,如:C:\MATLAB7
2.查看当前Java虚拟机最大堆内存, 敲入:java.lang.Runtime.getRuntime.maxMemory
3.查看Java虚拟机版本.敲入:version -java
4.在 $MATLAB\bin\$ARCH 路径下新建java.opts文件.
$MATLAB是根路径,例如C:\MATLAB7
$ARCH是系统架构.例如win32,则在C:\MATLAB7\bin\win32下新建java.opts文件.
5.用记事本打开java.opts文件,
对于版本是1.2到1.5的Java虚拟机,输入:
-Xmx268435456
对于版本是1.1.8的JVM,输入
maxHeapSize = 268435456
保存.
这里268435456是新设置的JVM的最大堆内存.可以改成其他值.
6. 重启matlab,敲入java.lang.Runtime.getRuntime.maxMemory
显示最大内存改变,设置成功.
==========
1. 查找matlab根路径.在matlab命令行中敲入:matlabroot
显示根路径,如:C:\MATLAB7
2.查看当前Java虚拟机最大堆内存, 敲入:java.lang.Runtime.getRuntime.maxMemory
3.查看Java虚拟机版本.敲入:version -java
4.在 $MATLAB\bin\$ARCH 路径下新建java.opts文件.
$MATLAB是根路径,例如C:\MATLAB7
$ARCH是系统架构.例如win32,则在C:\MATLAB7\bin\win32下新建java.opts文件.
5.用记事本打开java.opts文件,
对于不同的版本的Java虚拟机,输入:
The following table shows the default settings MATLAB uses for versions of the JVM:
JVM Initial Heap Size Max Heap Size
1.6.0 -Xms64m -Xmx128m (32-bit)
-Xmx196m (64-bit)
1.5.0 -Xms64m -Xmx96m (32-bit)
-Xmx128m (64-bit)
1.4.2 -Xms16m -Xmx96m
1.3.1 -Xms16000000 -Xmx64000000
1.2.2 -Xms16000000 -Xmx64000000
1.1.8 -ms16000000 -mx64000000
例如我的Java是1.4.2,在java.opts文件写入-Xmx96m,保存就ok啦
如果输入错误就报错:warning : Failed to start to Java Virtual machine
6. 重启matlab,敲入java.lang.Runtime.getRuntime.maxMemory
显示最大内存改变,设置成功.