tarde a la fiesta, pero qué diablos ...
$ {} os.arch sólo le dice si la JVM es de 32/64-bit. Es posible que esté ejecutando la JVM de 32 bits en un sistema operativo de 64 bits. Prueba esto:
<var name ="os.bitness" value ="unknown"/>
<if>
<os family="windows"/>
<then>
<exec dir="." executable="cmd" outputproperty="command.ouput">
<arg line="/c SET ProgramFiles(x86)"/>
</exec>
<if>
<contains string="${command.ouput}" substring="Program Files (x86)"/>
<then>
<var name ="os.bitness" value ="64"/>
</then>
<else>
<var name ="os.bitness" value ="32"/>
</else>
</if>
</then>
<elseif>
<os family="unix"/>
<then>
<exec dir="." executable="/bin/sh" outputproperty="command.ouput">
<arg line="/c uname -m"/>
</exec>
<if>
<contains string="${command.ouput}" substring="_64"/>
<then>
<var name ="os.bitness" value ="64"/>
</then>
<else>
<var name ="os.bitness" value ="32"/>
</else>
</if>
</then>
</elseif>
</if>
<echo>OS bitness: ${os.bitness}</echo>
EDIT: Como @GreenieMeanie señaló, esto requiere la biblioteca ant-contrib de ant-contrib.sourceforge.net
Gracias, eso suena como el enfoque más sagrado. Intentaremos eso. –
Cuidado - $ {os.arch} solo te dice la bit-ness de la JVM, no de la plataforma. Ver la respuesta de @ phatypus. –
bueno saberlo - gracias –