我正在使用 Java API (JWPL) 来处理维基百科转储,在运行一些应用程序后, 我收到 OutOfMemory: Java 堆空间错误。由于我无法检查源代码,我能做的就是 增加堆大小的最大分配。我还能做些什么吗?
另一个问题是:运行这个应用程序的目标是获取一些输出文本文件,我已经知道所有文件的名称,总共 11 个。从上次运行开始,我已经获得了 7 个文件,但它因上述错误而停止。现在,在更改最大堆大小后,我想知道是否有一种方法可以使下一次运行从剩余的位置开始,因为完整运行的持续时间约为 8 小时。我只是不想从头开始,我只想获取其余 4 个文件。我对Java很陌生,请给我一些建议。预先感谢!
最佳答案
如果您可以从命令行运行该 Java 应用程序,那么您可以使用 -Xmx 开关增加应用程序的可用内存:
即:
java -Xmx1024m MyApp
将为您的进程提供 1024 MB 的内存。
恐怕您无法获取剩下的 4 个文件。您需要再次运行整个过程。 (我假设您无权访问源代码)
关于java - OutOfMemoryError 以及如何使运行继续,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19611842/