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

有帮助吗?

解决方案

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

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

编辑:您还可以使用可执行包装程序,例如 JSmooth 或< a href =“http://launch4j.sourceforge.net/”rel =“noreferrer”> Launch4J 而不是批处理文件。但是,您将失去一些跨平台兼容性。

其他提示

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

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

您可以使用 JSmooth 或类似的包装器,它会创建一个启动JVM的EXE文件。必要的参数。这样您就可以避免使用.bat文件及其控制台对话框。还有一种方法是使用Runtime.exec或ProcessBuilder在新进程中启动实际程序。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top