日期:2014-05-18  浏览次数:20689 次

向各位高人求救:Applet小程序运行时抛出java.lang.OutOfMemoryError
目前在做一个金融的项目,用到了applet。我把数据都缓存在applet客户端(这样做是是不想频繁与数据库交互,也是想减少客户端操作的延迟)。可是随着数据量的增加,applet频频出java.lang.OutOfMemoryError的异常。我在csdn上看到别人也遇到同样的问题,IE给jvm默认分配了4M内存,可能过客户端的Java控制台面板设置-Xms,-Xmx来重新给jvm分配内存,这样问题是解决了。可是,也不能让最终客户们去手工做这个设置呀,请求各位高人给予指点。是否可以在applet中通过编程的方法重新分配客户机jvm的内存。或是有其他更好的方法。急急急!!!愿放100分求解!

------解决方案--------------------
程序运行后就不能在调内存了把
------解决方案--------------------
肯定不行啊,Java的安全性很高就是因为无法随意访问客户机器文件,你可以用其他语言写个程序来,让客户执行就好了
------解决方案--------------------
从理论上来说,访问那些未分配给程序的内存区域是不可能的。这个限制使得要写恶意代码的程序变得非常困难了。对Java applet施加的限制就更加严格了。由于Java applet被设计成从Internet上下载,因而被视为不可信任的代码,除非它包括你已认定为可信任的主机的数字指纹。JVM在内存的一个称之为sandbox的区域运行诸如applet这种不可信任的代码。它给每个applet分配资源和特权,并将其限定在这些分配区域范围中。

------解决方案--------------------
--程序运行后就不能在调内存了把

我是通过对象序列化把数据从服务端传输到applet客户端的,数据本身已经超过了4M,还没有等applet客户端程序运行,程序就已经抛出异常了。
------解决方案--------------------
up