Applet:Java堆空间

时间:2011-02-17 07:57:11

标签: java applet heap next-generation-plugin

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

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

  

java -Xms5m -Xmx15m MyApp

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

因此,有没有办法在APPLET的RUNTIME中更改堆大小?

4 个答案:

答案 0 :(得分:10)

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

示例:

<APPLET archive="my_applet.jar" code="MyApplet" width="300" height="300">
    <PARAM name="java_arguments" value="-Xmx256m">
</APPLET>

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

答案 1 :(得分:2)

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

<强>更新

似乎在最新版本的JDK中这是可能的。请看:How can I start an Java applet with more memory?

<强> UPDATE2:

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

答案 2 :(得分:1)

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

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

答案 3 :(得分:1)

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