我遇到了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。
答案 0 :(得分:5)
你回答了自己的问题。必须使用-Xmx选项启动应用程序。
答案 1 :(得分:2)
我找到了替代方案,我们可以使用:在命令提示符下设置_JAVA_OPTIONS = -Xms64m -Xmx128m。它使:java -Xms64m -Xmx128m成为默认的堆内存大小。我得到了here。
这种方式给我一个满意的结果。但如果你有更好的方法,请不要犹豫发布。无论如何,谢谢你的回复。
答案 2 :(得分:0)
-Xmx
或 generate a launcher for your jar。
答案 3 :(得分:0)
使用您在NetBeans IDE中预期的内存量配置“运行应用程序”属性中的设置。