1

我必须编写一个程序来处理 3000*3000 矩阵。它只能工作到 600*600。

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

现在,同样的程序用于在 Applets 中绘制值。所以我做了一个包并导入它。但是随后出现了同样的错误,因为您无法运行小程序。

您只能键入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

4

1 回答 1

4

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

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

请参阅Oracle 关于小程序部署的文档

于 2012-06-26T06:33:02.807 回答