Java堆空间:小程序

时间:2012-06-26 06:25:38

标签: java applet heap-memory appletviewer

我必须编写一个程序来处理3000 * 3000矩阵。 它的工作效率只有600 * 600。

所以我通过java -Xms64m -Xmx1024m <class_name>增加堆大小来运行我的程序 因为最初OutOfMemoryError正在发生。 这解决了这个问题。

现在,这个程序用于绘制Applet中的值。 所以我制作了一个包并导入它。 但是,由于您无法运行小程序,因此会出现同样的错误。

您只能输入javac class_name.javaappletviewer class_name.java

所以我无法增加堆大小。 所以我特意设置了一个main()函数...它计算了要绘制的值(存储在数组中)。

小程序会打印出来。 阵列是静态的和全局的。

然后我编译(javac class_name.java)并运行(java -Xms64m -Xmx1024m <class_name>),然后输入appletviewer class_name.java

但是0,0,0,......显示出来了。 基本上是int数组的默认值。

好像main()函数从未运行过。 尽管数组是全局的。

最终,我只需要一个main()函数...以及一些存储值的变量,并在键入ppletviewer class_name.java时保留它们。

有没有办法做到这一点? 或者增加小程序的堆大小?

因为当我在init()paint()函数中输入逻辑时,会出现同样的错误(OutOfMemoryError

1 个答案:

答案 0 :(得分:4)

您可以在包含applet的HTML中指定JVM参数,例如

<APPLET archive="applet.jar" code="ClassName" width="300" height="300">
    <PARAM name="java_arguments" value="-Xms64m -Xmx1024m">
</APPLET>

请参阅Oracle's documentation on applet deployment