首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

java.lang.OutOfMemoryError 谁能真正帮我解决有关问题,再加100分,多谢

2011-12-21 
java.lang.OutOfMemoryError 谁能真正帮我解决问题,再加100分,谢谢我做的是JAVA画图软件,主要是加载背景图

java.lang.OutOfMemoryError 谁能真正帮我解决问题,再加100分,谢谢
我做的是JAVA   画图软件,主要是加载背景图时,出的这个异常,但客户的图片很大,8M多,怎么解决,谢谢大家.

[解决办法]
java默认的情况下是设定的heapsize的,不同的vendor(例如sun,ibm,bea)的默认值各不同,但是都可以通过设置来实现。不知道你现在设置的是什么?但是你可以在启动参数中加 -Xms256M -Xmn256M -Xmx512M等来设置。例如你的程序已经打包为一个 graph.jar 那么就可以用java -jar -Xms256M -Xmn256M -Xmx512M graph.jar来运行,已得到更多的系统内存来支持你的应用。
[解决办法]
学习
[解决办法]
mark!
[解决办法]
xuexi...
我也常遇到
[解决办法]
可以在系统环境变量中设置jvm的启动内存,一般的服务器中使用的都是系统默认的。
而且web服务器都是可以手动设置的启动内存的。
[解决办法]
Error是捕获不到的,可以使用设置启动内存设置内存大小
[解决办法]
blog 更新:
think in java 章后练习答案.....
http://blog.csdn.net/heimaoxiaozi/
[解决办法]
focus!!!
学习一下。。。
[解决办法]
用-Xmx是可以提高vm的内存,不过内存溢出大多都是你自己程序写的有问题java也会内存泄漏的!我们编写百万级别用户访问程序都不会内存溢出,你写的程序肯定有问题,加大内存也许解决了你的问题,但是实际上面你的程序我估计不值得去加大内存就可以解决!好好看看你的程序吧
[解决办法]
同意楼上的,肯定是存在内存泄漏
[解决办法]
结贴是美德
[解决办法]
<j2se version= "1.4+ " initial-heap-size= "128m " max-heap-size= "256m "/>
[解决办法]
综上所述:应该是程序问题。。
希望楼主能把问题的根本,和解决的方案 汇报一下。。
以便大家学习。。
谢谢。。
呵呵。。。
[解决办法]
我的JDK如下:
java version "1.6.0-beta2 "
Java(TM) SE Runtime Environment (build 1.6.0-beta2-b86)
Java HotSpot(TM) Client VM (build 1.6.0-beta2-b86, mixed mode, sharing)

第一步: 在命令行输入:javaws -viewer

接着弹出“Java 控制面板”窗口,点“Java”选项卡,再点最上面那个“查看...”按钮
然后会弹出“Java Runtime 设置”窗口,用鼠标点“Java Runtime 参数”下面的输入框
在里面输入“-Xms256m -Xmx512m”之类的参数,然后按“确定”按钮就可以了。


上面的方法不行的话,检查您的程序是否有问题,8M的图片不算大。

另外的细节请查看javaws命令的详细参数,
还有JDK的文档
docs/technotes/tools/index.html#javaws

[解决办法]
-----------------------
http://blog.xerik.cn (专注于Java技术)
[解决办法]
UP,佔個座位
[解决办法]
jf
[解决办法]
精神支持你。。。
[解决办法]
应该是哪里有逻辑错误,
我遇到过类似的问题,把大于号写成小于号了
[解决办法]
上面有人已经说了解决方法了
照 luanxj(じ飞扬) 说的方法,在jnlp里面设置。
[解决办法]
要是您只是简单的用jar命令把所有的class文件打包成.jar文件,
且生成的.jar文件中有“Main-Class”这一项,并且只是用鼠标
双击生成的.jar文件来启动程序,这种方式严格来说不算是Java Web Start的。
其实只是javaw的功能而已。



如果是上面这种情况的话,写个批外理文件(.bat),在里面加上:
java -jar -Xms128m -Xmx256M yourJAR.jar
然后再双击批外理文件(.bat)就行了。


正统的Java Web Start程序一般会有个.jnlp文件的,
双击.jnlp文件就启动了Java Web Start
下面的例子就是改写自JDK1.4.2下的draw.jnlp文件

<?xml version= "1.0 " encoding= "utf-8 "?>
<jnlp spec= "0.2 1.0 "
codebase= "http://java.sun.com/products/javawebstart/apps "
href= "draw.jnlp ">
<information>
<title> Draw 4 App </title>
<vendor> Sun Microsystems, Inc. </vendor>
</information>
<resources>
<j2se version= "1.3+ " initial-heap-size= "128m " max-heap-size= "256m " href= "http://java.sun.com/products/autodl/j2se "/>
<jar href= "draw.jar " main= "true " download= "eager "/>
</resources>
<application-desc main-class= "Draw "/>
</jnlp>

上面的initial-heap-size= "128m " max-heap-size= "256m "
就相当于-Xms128m -Xmx256M


最后:

JavaTM Web Start 1.4.2的文档在docs/guide/jws/index.html下面

Java Network Launching Protocol and API (JNLP) Specification v1.0.1. 在下面
http://java.sun.com/products/javawebstart/download-spec.html


我第一次回答的只是applet(JavaTM Plug-in)的情况
JavaTM Web Start跟applet有点不一样

[解决办法]
根据我的经验,Out of memory 98%以上是程序问题,而不是JVM启动参数问题
[解决办法]
根据我的经验,Out of memory 98%以上是程序问题,而不是JVM启动参数问题
-------------------------------
同意,先找程序的漏洞
[解决办法]
根据我的经验,Out of memory 98%以上是程序问题,而不是JVM启动参数问题
-------------------------------
同意,先找程序的漏洞
=====================================================================
经验和星星不能代表一切,有问题试了才知道

就好比Java Web Start的默认初始heap-size不到6M而不断加载的图片有8M,
要是最大heap-size也不到8M的话来个Out of memory也不足为怪
[解决办法]
学习
[解决办法]
顶一个 jnlp 今天刚看到

<?xml version= "1.0 " encoding= "utf-8 "?>
<jnlp spec= "0.2 1.0 "
codebase= "http://java.sun.com/products/javawebstart/apps "
href= "draw.jnlp ">
<information>
<title> Draw 4 App </title>
<vendor> Sun Microsystems, Inc. </vendor>
</information>
<resources>
<j2se version= "1.3+ " initial-heap-size= "128m " max-heap-size= "256m " href= "http://java.sun.com/products/autodl/j2se "/>
<jar href= "draw.jar " main= "true " download= "eager "/>
</resources>
<application-desc main-class= "Draw "/>
</jnlp>

[解决办法]
可能存在内存泄露,用 jprofiler 详细分析一下你的程序运行时的资源分配情况,有助于定位你的内存泄露的位置

热点排行
Bad Request.