是一个C/S项目,有客户端跟服务器的,最近程序总是因为这个问题造成连接失败,请各位高手指点
以下是log:Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
at java.io.ObjectInputStream$BlockDataInputStream.<init>(Unknown Source)
at java.io.ObjectInputStream.<init>(Unknown Source)
at sun.rmi.server.MarshalInputStream.<init>(Unknown Source)
at sun.rmi.transport.ConnectionInputStream.<init>(Unknown Source)
at sun.rmi.transport.StreamRemoteCall.getInputStream(Unknown Source)
at sun.rmi.transport.Transport.serviceCall(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
at java.io.BufferedInputStream.<init>(Unknown Source)
at java.io.BufferedInputStream.<init>(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
at java.io.BufferedInputStream.<init>(Unknown Source)
at java.io.BufferedInputStream.<init>(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: Java heap space
Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: Java heap space
Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: Java heap space

解决方案 »

  1.   

    调虚拟机内存阿.! 方法google上多的就是, 建议LZ去搜下
      

  2.   

    网上都是tomcat的设置 我是cs程序 没找到在哪设置呢 程序里 还是在环境变量中 还是打包的时候?
      

  3.   

    启动java程序时,带上两个参数:
    -Xms java虚拟机初始化时使用的内存大小
    -Xmx java虚拟机可以使用的最大内存以上两个参数中设置的size,可以带单位,例如:256m表示256MB举例说明:
    D:\j2sdk15\bin>javac HelloWorld.javaD:\j2sdk15\bin>java -Xms256M -Xmx512M HelloWorld
    Hello World!
      

  4.   

    建议,先不要条内存哈,如果不是很小的话。
    先看看你程序写得是不是规范,看看是不是有没有大量的没有释放的资源,和大批量数据操作时内存的使用。
    之前我们服务其就经常溢出,后来发现是一个操作要从后台取几万的数据,放到jvm里操作,有几个命令就把内存耗尽了。改了中处理方式,“少吃多餐”就解决了。
      

  5.   

    这个仁兄的方法好像很好,不过这问题我都没遇到。感觉JAVA应该注重下算法,减少内存的使用