【问题标题】:Applet: Java heap space小程序:Java 堆空间
【发布时间】:2011-06-28 22:08:45
【问题描述】:

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

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

java -Xms5m -Xmx15m 我的应用程序

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

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

【问题讨论】:

    标签: java applet heap-memory next-generation-plugin


    【解决方案1】:

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

    【讨论】:

    • 还可以为通过部署的小程序定义额外的内存。 JNLP,但这是更简单的方法。请特别注意 applet Wiki (stackoverflow.com/tags/applet/info) 中的最后两个链接。很好地调用链接和示例。 (耳语)希望这个线程的其他一些贡献者能学到一两件事。 ;)
    【解决方案2】:

    JVM 可能早在您使用 Applet 之前就已启动。现在太迟了 改变堆大小。尝试 Java Web Start,您可以在其中控制它,生成 为您的 Applet/应用程序创建一个新的 JVM。

    【讨论】:

      【解决方案3】:

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

      考虑如果小程序可以更改这些设置的后果......它还可以更改什么。那只是最终要求安全漏洞,而Java的目标是在功能之前实现安全性:)

      【讨论】:

        【解决方案4】:

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

        更新:

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

        更新2:

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

        【讨论】:

          猜你喜欢
          • 2012-06-27
          • 2018-02-26
          • 2021-09-09
          • 1970-01-01
          • 1970-01-01
          • 2011-10-27
          • 2014-04-24
          • 2011-01-14
          • 1970-01-01
          相关资源
          最近更新 更多