1

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

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

java -Xms1200m  -Xmx1300m Sample

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

4

3 回答 3

8
 java -Xms1200m -Xmx1300m -jar FILENAME.jar

在 jar 文件或清单中的某处定义它是不可能的:

我可以设置从 jar 文件运行的 Java 最大堆大小吗?

于 2012-08-09T08:43:32.210 回答
0

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

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

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

  • 如果没有找到合适的Java版本,会提示用户下载
  • Windows 7 开始菜单将正确对待它(安装后将其突出显示为新应用程序)
  • Windows 防火墙会正确对待它
于 2012-08-09T09:19:55.490 回答
0
<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 配置文件,在这里您可以根据需要指定堆大小。

于 2020-07-22T09:56:08.437 回答