通过命令行运行程序时,可以使用java -Xms -Xmx
指定堆大小。如果要通过双击.jar文件来运行程序,是否有办法使用比标准更多的堆?
答案 0 :(得分:8)
没有。这就是为什么我经常使用这些参数创建一个.bat或.sh文件,并指导用户运行它而不是.jar。不幸的是,必须弹出命令提示符窗口有点难看,但这无济于事。
作为附带好处,如果您的应用程序冻结,您可以指示用户将pause
放入批处理文件(或自己执行),然后您可以看到发生的任何堆栈跟踪。
答案 1 :(得分:5)
您可以使用运行java -jar -Xms -Xmx your_file.jar
的批处理文件,而不是直接双击.jar文件。从用户的角度来看它是一样的,但它可以让你更好地控制实际运行的命令。
答案 2 :(得分:5)
您可以使用Runtime.getRuntime()。exec()将jar重新启动,并使用您想要的选项。 jar可以包含多个main()方法(在不同的类中),你可以通过exec()调用另一个。
答案 3 :(得分:2)
您可以使用JSmooth或类似的包装器创建一个EXE文件,该文件使用必要的参数启动JVM。这样您就可以避免使用.bat文件及其控制台对话框。还有一种方法是使用Runtime.exec或ProcessBuilder在新进程中启动实际程序。