//首先检查程序有没
<wbr>有限入死循环<br><br> 这个问题主要还是由这<wbr>个问题java.lang.<wbr>OutOfMemor<wbr>yError:Javaheapspace引起的。第一次出现这<wbr>样的的问题以后,引发<wbr>了其他的问题。在网上<wbr>一查可能是JAVA的<wbr>堆栈设置太小的原因。<wbr><br><br> 跟据网上的答案大致有<wbr>这两种解决方法:<br><br> 1、设置环境变量<br><br> 解决方法:手动设置H<wbr>eapsize<br><br> 修改TOMCAT_H<wbr>OME/bin/ca<wbr>talina.sh<br><br> setJAVA_OPTS=<wbr>-Xms32m-Xmx512m<br><br> 可以根据自己机器的内<wbr>存进行更改。<br><br> 2、java-Xms32m-Xmx800mclassName<br><br> 就是在执行JAVA类<wbr>文件时加上这个参数,<wbr>其中classNam<wbr>e是需要执行的确类名<wbr>。(包括包名)<br><br> 这个解决问题了。而且<wbr>执行的速度比没有设置<wbr>的时候快很多。<br><br> 如果在测试的时候可能<wbr>会用Eclispe这时候就需要在Ecl<wbr>ipse->run-arguments<wbr>中的VMarguments中输入-Xms32m<wbr>-Xmx800m这个<wbr>参数就可以了。<br><br> 后来在Eclilps<wbr>e中修改了启动参数,<wbr>在VMarguments加入了-Xms32m<wbr>-Xmx800m,问<wbr>题解决。<br><br> 一、java.lan<wbr>g.OutOfMem<wbr>oryError:PermGenspace<br><br> PermGenspace的全称是P<wbr>ermanentGeneration<wbr>space,是指内存<wbr>的永久保存区域,<br><br> 这块内存主要是被JV<wbr>M存放Class和M<wbr>eta信息的,Cla<wbr>ss在被Loader<wbr>时就会被放到Perm<wbr>Genspace中,<br><br> 它和存放类实例(In<wbr>stance)的He<wbr>ap区域不同,GC(<wbr>GarbageCollection<wbr>)不会在主程序运行期<wbr>对<br><br> PermGenspace进行清理,<wbr>所以如果你的应用中有<wbr>很多CLASS的话,<wbr>就很可能出现Perm<wbr>Genspace错误,<br><br> 这种错误常见在web<wbr>服务器对JSP进行p<wbr>recompile的时候<wbr>。如果你的WEBAPP下都用了大量的<wbr>第三方jar,其大小<br><br> 超过了jvm默认的大<wbr>小(4M)那么就会产<wbr>生此错误信息了。<br><br> 解决方法:手动设置MaxPer<wbr>mSize大小<br><br> 修改TOMCAT_H<wbr>OME/bin/ca<wbr>talina.sh<br><br> 在“echo"UsingCATALINA_B<wbr>ASE:$CATALINA_<wbr>BASE"”上面加入<wbr>以下行:<br><br> JAVA_OPTS=<wbr>"-server-XX:PermSi<wbr>ze=64M-XX:MaxPer<wbr>mSize=128m<wbr><br><br> 建议:将相同的第三方<wbr>jar文件移置到to<wbr>mcat/share<wbr>d/lib目录下,这<wbr>样可以达到减少jar<wbr>文档重复占用内存的目<wbr>的。<br><br> 二、java.lan<wbr>g.OutOfMem<wbr>oryError:Javaheapspace<br><br> Heapsize设置<br><br> JVM堆的设置是指j<wbr>ava程序运行过程中<wbr>JVM可以调配使用的<wbr>内存空间的设置.JV<wbr>M在启动的时候会自动<wbr>设置Heapsize的值,<br><br> 其初始空间(即-Xm<wbr>s)是物理内存的1/<wbr>64,最大空间(-X<wbr>mx)是物理内存的1<wbr>/4。可以利用JVM<wbr>提供的-Xmn-Xms-Xmx等选项可<br><br> 进行设置。Heapsize的大小是YoungGeneration<wbr>和TenuredGeneraion之和。<br><br> 提示:在JVM中如果<wbr>98%的时间是用于G<wbr>C且可用的Heapsize不足2%的时候将抛出<wbr>此异常信息。<br><br> 提示:HeapSize最大不要超过可用物理<wbr>内存的80%,一般的<wbr>要将-Xms和-Xm<wbr>x选项设置为相同,而<wbr>-Xmn为1/4的-<wbr>Xmx值。<br><br> 解决方法:手动设置H<wbr>eapsize<br><br> 修改TOMCAT_H<wbr>OME/bin/ca<wbr>talina.sh<br><br> 在“echo"UsingCATALINA_B<wbr>ASE:$CATALINA_<wbr>BASE"”上面加入<wbr>以下行:<br><br> JAVA_OPTS=<wbr>"-server-Xms800m-Xmx800m-XX:MaxNew<wbr>Size=256m"<wbr><br><br> 三、实例,以下给出1<wbr>G内存环境下java<wbr>jvm的参数设置参考:<br><br> JAVA_OPTS=<wbr>"-server-Xms800m-Xmx800m-XX:PermSi<wbr>ze=64M-XX:MaxNew<wbr>Size=256m-XX:MaxPer<wbr>mSize=128m<wbr>-Djava.awt<wbr>.headless=<wbr>true"<br><br> 很大的web工程,用<wbr>tomcat默认分配<wbr>的内存空间无法启动,<wbr>如果不是在myecl<wbr>ipse中启动tom<wbr>cat可以对tomc<wbr>at这样设置:<br><br> TOMCAT_HOM<wbr>E\bin\cata<wbr>lina.bat中添加这样一句话:<br><br> setJAVA_OPTS=<wbr>-Xmx1024M-Xms512M-XX:MaxPer<wbr>mSize=256m<wbr><br><br> 如果要在myecli<wbr>pse中启动,上述的<wbr>修改就不起作用了,可<wbr>如下设置:<br><br> Myeclipse-<wbr>>preferenc<wbr>es->myecli<wbr>pse->serve<wbr>rs->tomcat<wbr>->tomcat×.×->JD<wbr>K面板中的<br><br> OptionalJavaVMarguments中<wbr>添加:-Xmx102<wbr>4M-Xms512M-XX:MaxPer<wbr>mSize=256m<wbr><a target="_blank" href="http://www.ihaohuo.com/2010-12-18/3/25/hailiuyanzuizhengpin/index.html">海柳烟嘴正品</a><br><br> 在myeclipse<wbr>中启动Tomcat时<wbr>,提示"ava.la<wbr>ng.OutOfMe<wbr>moryError:<wbr>Javaheapspace",解决办<wbr>法就是:<br><br> Myeclipse-<wbr>>preferenc<wbr>es->myecli<wbr>pse->serve<wbr>rs->tomcat<wbr>->tomcat×.×->JD<wbr>K面板中的<br><br> OptionalJavaVMarguments中<wbr>添加:-Xmx102<wbr>4M-Xms512M-XX:MaxPer<wbr>mSize=256m<wbr><br><br> //以上是转载<br><br> 我遇到的错误是在my<wbr>eclipse中启动<wbr>Tomcat时,提示<wbr>"ava.lang.<wbr>OutOfMemor<wbr>yError:Javaheapspace"<br><br> 以上三点我都试过了就是不知道自己的代码<wbr>从哪里进入死循环我运用的是strut<wbr>s,hibernat<wbr>e,spring<br><br> 根据错误提示JSON<wbr>Write找到自己项目下poj<wbr>o下hibernat<wbr>e的映射文件<br><br> eg:<br><br> 有两张关联的表生成两个相联的实体类<wbr>和映射文件PersonInfo<wbr>mation和Sta<wbr>teOffice<br><br> 因为映射文件和实体类<wbr>是从数据库表自动生成<wbr>的所以都是自动生成双向<wbr>的关系<br><br> 在PersonInf<wbr>omation中pr<wbr>ivatePersStateO<wbr>fficepersStateO<wbr>ffice;<br><br> 并且在StateOf<wbr>fice中priva<wbr>teSet<PersPe<wbr>rsonInform<wbr>ation>persPerson<wbr>Informatio<wbr>ns=newHashSet<Pe<wbr>rsPersonIn<wbr>formation><wbr>(<br><br> 0);<br><br> 所以在封装json数<wbr>据的时候就会出现死循<wbr>环现象不断的从两个实体类中<wbr>封装导致内存溢出<br><br> 解决方案1取消StateOff<wbr>ice中的关联2手动封装json数<wbr>据(为了不让查询数据<wbr>出现错误与冲突我选择手动封装jso<wbr>n数据)<br><br> eg://获取任职类<wbr>型<br><br> publicStringloadOffice<wbr>Type()throwsException{<br><br> PrintWrite<wbr>rout=response.g<wbr>etWriter()<wbr>;<br><br> typeOffice<wbr>List=offic<wbr>eTypeServi<wbr>ce.getOffi<wbr>ceType();<br><br> out.print(<wbr>"{typeOffi<wbr>ceList:[")<wbr>;<br><br> for(inti=0;i<type<wbr>OfficeList<wbr>.size();i+<wbr>+){<br><br> out.print(<wbr>"{typeOffi<wbr>ceId:'"+ty<wbr>peOfficeLi<wbr>st.get(i).<wbr>getTypeOff<wbr>iceId()+"'<wbr>,");<br><br> out.print(<wbr>"typeOffic<wbr>e:'"+typeO<wbr>fficeList.<wbr>get(i).get<wbr>TypeOffice<wbr>()+"'}");<br><br> if(i!=type<wbr>OfficeList<wbr>.size()-1)<wbr>{<br><br> out.print(<wbr>",");<br><br> }<br><br> }<br><br> out.print(<wbr>"]}");<br><br> returnnull;<br><br> } <br></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>