为Java jar分配更多堆空间

9 java memory heap jar

通过命令行运行程序时,可以使用java -Xms -Xmx指定堆大小.如果要通过双击.jar文件来运行程序,是否有办法使用比标准更多的堆?

Mic*_*ers 8

不.这就是为什么我经常使用这些参数创建一个.bat或.sh文件,并指导用户运行它而不是.jar.不幸的是,必须弹出命令提示窗口有点难看,但这无济于事.

作为附带好处,如果您的应用程序冻结,您可以指示用户放入pause批处理文件(或自己执行),然后您可以看到发生的任何堆栈跟踪.

编辑:您还可以使用可执行包装程序(如JSmoothLaunch4J)而不是批处理文件.但是,您会失去一些跨平台兼容性.

  • 你也可以使用像JSmooth这样的东西:http://jsmooth.sourceforge.net/ (3认同)

Wel*_*bog 5

您可以使用运行的批处理文件,而不是直接双击.jar文件java -jar -Xms -Xmx your_file.jar.从用户的角度来看,它是相同的,但它可以让您更好地控制实际运行的命令.


Pet*_*rey 5

您可以使用Runtime.getRuntime().exec()将jar重新启动,并使用您想要的选项.jar可以包含多个main()方法(在不同的类中),你可以通过exec()调用另一个.