如何在开始运行jar文件时设置-Xmx?

2022-08-31 22:39:01

正如我们所知,我们可以在日食中设置。但是当我把这个项目打包成一个可运行的jar文件时,我该如何设置运行jar时通过?-Xmx1024Mwindow->preferences->java->installed jres->edit->default vm arguments-Xmx1024Mjava -jar A.jar

多谢!


答案 1

不幸的是,现有的答案在一个关键点上是错误的。

-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


答案 2

三种方法:

  • 命令行:
  • 指示您的用户使用“java -xmx1024m -jar SampleJavaApp.jar”运行您的应用程序
  • Java 控制面板:
  • 指示您的用户默认将更多内存专用于 Java:Win7 指南
  • 使用适当的 Xmx 值重新启动 jar。

最后一个选项是“邪恶的”,但不需要用户付出任何额外的努力。下面是一个示例代码块:

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;
    }
}

推荐