Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to specify JVM argument for Maven built executable JAR

When using Maven to build an executable JAR, how do I specify the JVM arguments that are used when the JAR is executed?

I can specify the main class using <mainClass>. I suspect there's a similar attribute for JVM arguments. Specially I need to specify the maximum memory (example -Xmx500m).

Here's my assembly plugin:

  <plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <configuration>
      <descriptorRefs>
        <descriptorRef>jar-with-dependencies</descriptorRef>
      </descriptorRefs>
      <archive>
        <manifest>
          <addClasspath>true</addClasspath>
          <mainClass>com.me.myApplication</mainClass>
        </manifest>
      </archive>
    </configuration>
  </plugin>

Edit/Follow-up: It seems that it might not be possible to specify JVM arguments for an executable JAR according to this and this post.

like image 794
Steve Kuo Avatar asked Oct 11 '08 00:10

Steve Kuo


1 Answers

I don't know of any such mechanism. The JVM configuration is specified by the calling java command.

Here's the jar file specification which conspicuously doesn't mention any attribute other than Main-Class for stand-alone execution:

http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html

like image 104
Alex Miller Avatar answered Oct 03 '22 04:10

Alex Miller