2011-02-17 54 views
7

由于一个小的实现错误,我发现我的速度可以达到Java堆空间的问题小程序:Java堆空间

现在的错误是固定的一切都很好,但它确实让我寻找到如何解决这一点,我foudn多种解决方案,如

的Java -Xms5m -Xmx15m MyApp的

的问题是,这改变了我的计算机上的Java内存,但我正在那将是一个小程序在webrowser中使用。

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

回答

10

您可以将参数添加到小程序标记。但是您感兴趣的参数仅在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

+0

额外存储器也经由部署的Applet来定义。 JNLP,但这是更简单的方法。请特别注意小应用程序Wiki中的最后两个链接(http://stackoverflow.com/tags/applet/info)。请打开链接和示例。 (窃窃私语)希望这个线程的其他贡献者会学到一两件事。 ;) – 2011-02-17 08:41:55

2

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

更新:

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

UPDATE2:

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

1

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

考虑一下applet是否可以改变这些设置的后果......还有什么可以改变的。这只是要求最终实现安全漏洞,而Java旨在实现功能之前的安全性:)

1

JVM可能早在Applet之前已经开始。现在到 更改堆大小已经太晚了。试用Java Web Start,您可以控制它,为您的Applet /应用程序产生一个新的JVM。