如何强制操作系统给java更多内存?

时间:2010-05-14 04:55:29

标签: java netbeans jar operating-system memory-management

我遇到了java jar文件和内存的问题。

我使用netbeans 6.7来开发应用程序,这个应用程序需要更多内存才能运行,因为它会转换另一个文件。每当这个应用程序转换一个6-10 MB的文件时,它就会崩溃。所以我设置netbeans VM选项:-Xms32m -Xmx256m,应用程序可以毫无问题地转换6-10mb文件。

我清理并构建项目,以便它可以制作我的应用程序的jar文件。我在计算机上运行jar并使用jconsole监视内存。应用程序使用的最大内存为256 MB。但每当我将它移动到其他计算机时,它在jconsole上显示65-66 mb,并且在转换6-10 mb文件时应用程序将崩溃。所以我需要使用命令提示符:java -jar -Xmx256m myjar.jar来执行具有最大内存的jar

为什么会发生这种情况,在我的电脑中最大内存显示256 MB,而另一台计算机显示65-66 mb? 我可以强制另一台计算机为我的应用程序提供额外的最大内存吗?

感谢您的回答。对不起英语不好,我很抱歉。如果你们都觉得我的问题很难理解,请告诉我。

最好的问候

丹尼

ps:fyi用于开发应用程序的计算机有2gb ram,在我测试的其他计算机上有1-2 gb ram。

4 个答案:

答案 0 :(得分:5)

你回答了自己的问题。必须使用-Xmx选项启动应用程序。

答案 1 :(得分:2)

我找到了替代方案,我们可以使用:在命令提示符下设置_JAVA_OPTIONS = -Xms64m -Xmx128m。它使:java -Xms64m -Xmx128m成为默认的堆内存大小。我得到了here

这种方式给我一个满意的结果。但如果你有更好的方法,请不要犹豫发布。无论如何,谢谢你的回复。

答案 2 :(得分:0)

IIRC,客户端VM默认为64MB堆。您必须使用-Xmx generate a launcher for your jar

答案 3 :(得分:0)

使用您在NetBeans IDE中预期的内存量配置“运行应用程序”属性中的设置。