Applet:Java堆空间

由于实施错误很小,我发现我能够多快地解决Java堆空间问题

现在这个bug被修复了一切都很好但它确实让我研究如何解决这个问题,并且我提出了多种解决方案,例如

java -Xms5m -Xmx15m MyApp

问题是这会改变我的计算机上的java内存,但我正在研究将在webrowser中使用的Applet。

因此,有一种方法,在APPLET的RUNTIME中改变堆大小?

您可以向applet标记添加参数。 但您感兴趣的参数仅适用于Java6 u10或更高版本。

例:

   

更多信息http://www.oracle.com/technetwork/java/javase/plugin2-142482.html#JAVA_ARGUMENTS

AFAIK,只有用户可以更改JRE堆设置。 Applet无法更改此设置。

更新:

似乎在最新版本的JDK中这是可能的。 看看: 如何启动具有更多内存的Java小程序?

UPDATE2:

内存设置只能为JNLP应用程序设置,而不能为Applet设置。

如果未在命令行中指定,则必须从JVM设置中获取它。 因此,当您将applet部署到Web时,它将取决于它们运行时在计算机上具有的内存设置。 通常它默认设置为60-90Mb,所以尽量保持在它之下。

如果applet可以更改这些设置,请考虑其后果……它可以更改的其他内容。 这只是最终要求安全漏洞利用,而Java的目标是在function之前实现安全性:)

JVM可能早在Applet开始之前就开始了。 现在改变堆大小为时已晚。 尝试Java Web Start,您可以在其中控制它,为您的Applet /应用程序生成一个新的JVM。