如何在开始运行jar文件时设置-Xmx?
正如我们所知,我们可以在日食中设置。但是当我把这个项目打包成一个可运行的jar文件时,我该如何设置运行jar时通过?-Xmx1024M
window->preferences->java->installed jres->edit->default vm arguments
-Xmx1024M
java -jar A.jar
多谢!
正如我们所知,我们可以在日食中设置。但是当我把这个项目打包成一个可运行的jar文件时,我该如何设置运行jar时通过?-Xmx1024M
window->preferences->java->installed jres->edit->default vm arguments
-Xmx1024M
java -jar A.jar
多谢!
不幸的是,现有的答案在一个关键点上是错误的。
-Xmx
必须传递给 Java 运行时环境,而不是传递给执行的 jar。
错:
java -jar JavaApplication.jar -Xmx1024m
正确:
java -Xmx1024m -jar JavaApplication.jar
更具体地说,Java启动器需要按如下方式使用:
java [选项] -jar file.jar [参数]
[options]
传递到 Java 运行时环境[arguments]
传递给主函数该参数属于(非标准)JVM 选项,并且 - 作为一个选项 - 需要在 -jar 之前列出(或至少在 file.jar 之前)。JVM 不会像其他答案中建议的那样识别传递给 main 函数的参数。-Xmx
-Xmx
三种方法:
最后一个选项是“邪恶的”,但不需要用户付出任何额外的努力。下面是一个示例代码块:
public static void main(String[] args) throws IOException, URISyntaxException {
String currentPath=SampleJavaApp.class
.getProtectionDomain()
.getCodeSource().getLocation()
.toURI().getPath()
.replace('/', File.separator.charAt(0)).substring(1);
if(args.length==0 && Runtime.getRuntime().maxMemory()/1024/1024<980) {
Runtime.getRuntime().exec("java -Xmx1024m -jar "+currentPath+" restart");
return;
}
}