Java堆空间:Applets

问题描述:

我不得不编写一个程序来为3000 * 3000矩阵工作。 它只能工作到600 * 600。Java堆空间:Applets

因此,我通过增加堆大小来运行我的程序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

+2

你尝试用 “增加堆的小程序” 谷歌搜索?如果您为最终用户这么做,抱歉,您无法完成此任务。您不能强制用户更改他们的系统设置以查看您的杰作。 –

+1

试着阅读你在这个主题上提出的最后一个问题的答案......:P如果你不会阅读它们,那么没有必要回答。 –

可以在其中包含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

+0

这当然假设你正在浏览器(而不是appletviewer)的上下文中运行。 –

+0

不是主要目的不是为了浏览器,而是为了在图表中显示数据。 我有一点新的Java,所以只需要清楚,上面的代码应该有类名“”ClassName“,并保存在一个名为applet.jar的文件? –

+0

是的,这是正确的。 –