【问题标题】:How to create an executable jar file with 1 GB heap如何创建具有 1 GB 堆的可执行 jar 文件
【发布时间】:2012-08-06 10:57:59
【问题描述】:

我创建了一个类,它提供一个包含系统性能的文本文件作为输出。我想将它作为一个可执行 Jar 运行。但是当我运行 Jar 时,我想将堆增加到 1 GB。

如果我们运行这个程序,我可以这样运行:

java -Xms1200m  -Xmx1300m Sample

但是如何使用 executable Jar 增加堆空间?当我单击 jar 时,它必须以 1 GB 的堆空间执行。

【问题讨论】:

标签: java jar executable


【解决方案1】:
<launch4jConfig>
  <dontWrapJar>false</dontWrapJar>
  <headerType>gui</headerType>
  <jar>PATH_OF_YOUR_JAR</jar>
  <outfile>PATH_OF_YOUR_EXE</outfile>
  <errTitle></errTitle>
  <cmdLine>-log_file=logs\\hp</cmdLine>
  <chdir></chdir>
  <priority>normal</priority>
  <downloadUrl>http://java.com/download</downloadUrl>
  <supportUrl></supportUrl>
  <customProcName>true</customProcName>
  <stayAlive>false</stayAlive>
  <manifest></manifest>
  <icon>PATH_OF_THE_ICON</icon>
  <singleInstance>
    <mutexName>APPLICATION_NAME</mutexName>
    <windowTitle></windowTitle>
  </singleInstance>
  <jre>
    <path>jre-w32\</path>
    <minVersion></minVersion>
    <maxVersion></maxVersion>
    <jdkPreference>preferJre</jdkPreference>
    <initialHeapSize>512</initialHeapSize>  
    <maxHeapSize>1024</maxHeapSize>
  </jre>
</launch4jConfig>

这是一个launch4j Config文件,这里你可以根据你的需要指定堆大小。

【讨论】:

    【解决方案2】:

    如前所述:不幸的是,这是不可能的(不创建包装器,无论是快捷方式/脚本/可执行文件...)。

    如果您只在 Windows 上运行,我可以推荐 Launch4J 创建一个可执行包装器,该包装器可以在执行时应用这些设置:

    将其包装在可执行文件中还有其他好处:

    • 如果没有找到合适的Java版本,会提示用户下载
    • Windows 7 开始菜单会正确处理(安装后将其突出显示为新应用程序)
    • Windows 防火墙会妥善处理它

    【讨论】:

      【解决方案3】:
       java -Xms1200m -Xmx1300m -jar FILENAME.jar
      

      在 jar 文件或 Manifest 中的某处定义这是不可能的:

      Can I set Java max heap size for running from a jar file?

      【讨论】:

      • 我想为一个可执行的 jar 设置堆空间
      • 然后查看此答案中的链接。只用一个 jar 是不可能的,你需要一些包装器(shell 脚本、web 启动等)
      猜你喜欢
      • 2017-09-21
      • 2013-04-07
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 2020-05-20
      • 2014-07-18
      • 2010-12-29
      • 2018-08-16
      相关资源
      最近更新 更多