Maven: Finding out whether running in a 32 or a 64 bit JVM

java, jvm, maven, maven-2

Solution

In a Sun VM, check for the system property `sun.arch.data.model`

<profiles>
<profile>
  <id>32bitstuff</id>
  <activation>
    <property>
      <name>sun.arch.data.model</name>
      <value>32</value>
    </property>
  </activation>
</profile>

<profile>
  <id>64bitstuff</id>
  <activation>
    <property>
      <name>sun.arch.data.model</name>
      <value>64</value>
    </property>
  </activation>
</profile>

</profiles>

Reference:

- HotSpot FAQ

Problem

How can I enable or disable a maven profile based on whether the VM that is executing maven is a 32 bit or a 64 bit JVM ? I tried this: ``` <activation> <os> <arch>x86</arch> </os> </activation> ``` or `amd64` respectively to detect a 32/64 bit VM, but this fails on a 32 bit VM running on a 64 bit Windows as it activates the 64 bit profile.

Original source