小程序:Java 堆空间不足

7
由于一个小的实现错误,我发现我可以很快地遇到Java堆空间问题。现在错误已经被修复,一切都好了,但是这让我开始研究如何解决这个问题,我发现了多种解决方案,例如:
java -Xms5m -Xmx15m MyApp 问题在于这会改变我的计算机上的Java内存,但我正在开发一个将在Web浏览器中使用的Applet。
因此,有没有一种方法可以在APPLET运行时更改堆大小?
4个回答

10

额外的内存也可以为通过JNLP部署的小程序定义,但这是更简单的方法。特别注意小程序维基中的最后两个链接(http://stackoverflow.com/tags/applet/info)。很好的链接和示例。(低声下气地说)希望本主题的其他贡献者也能学到一些东西。;) - Andrew Thompson

2
据我所知,只有用户才能更改JRE堆设置。小程序无法更改这些设置。
更新:
最新版本的JDK似乎可以实现这一点。请参见:How can I start an Java applet with more memory? 更新2:
内存设置只能用于JNLP应用程序,而不能用于小程序。

1

如果在命令行上没有指定,那么您必须从JVM设置中获取它。因此,当您将您的小程序部署到网络上时,它将依赖于运行它的计算机上的内存设置。通常情况下,默认设置为60-90Mb,因此请尽量保持在此范围之内。

考虑一下,如果小程序可以更改这些设置会有什么后果...它可能还能够更改其他内容。这只是在寻求安全漏洞,而Java旨在先确保安全性,然后再考虑功能 :)


1

JVM可能在您的Applet之前就已经启动了。现在更改堆大小为时已晚。尝试使用Java Web Start,您可以控制它,为您的Applet/应用程序生成一个新的JVM。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接