2011-08-31 8 views
10

¿Cómo configuro el bootclasspath de ant junto con -ource 1.5 -target 1.5?Establecer ant bootclasspath: JDK 1.7 tiene una nueva advertencia javac para establecer una fuente anterior sin bootclasspath

¿Cómo puede no ser una ruta codificada a la 1.5 JDK? ¿Puedo establecer una variable de entorno para bootclasspath similar a cómo se puede usar JAVA_HOME desde hormiga?

Idealmente, me gustaría hacer algo así como establecer una variable de entorno o pasar un argumento a hormiga.

+0

En realidad, sólo es necesario el rt.jar de su JRE 1.5, no el total de JDK , Creo. –

Respuesta

14

Aquí hay una ilustración de cómo puede obtener la ubicación de las clases de arranque de Java 5 de una variable de entorno, y luego usarla.

Primero, establezca la variable de entorno - por ejemplo JAVA5_BOOTCLASSES. El property task le da acceso al entorno, luego el argumento bootclasspath del javac task pasa la configuración al compilador.

<property environment="env" /> 
<property name="java5.boot.classpath" value="${env.JAVA5_BOOTCLASSES}" /> 

<javac source="1.5" target="1.5" 
     bootclasspath="${java5.boot.classpath}" 
     ... 
/> 

Tenga en cuenta que si la variable de entorno no está definida, la hormiga se ignorarlo y continuar sin - por lo que el compilador va a caer de nuevo a la ruta de clases de arranque por defecto.

Otra opción, si corresponde, es switch off the warnings, y no molestar con el bootclasspath. Algo así como

<javac srcdir= ... > 
    <compilerarg arg="-Xlint:-options" /> 
</javac> 

Pero eso puede exponerlo a algunos errores sutiles.

+0

Es posible que desee agregar una propiedad ejecutable en la tarea javac para apuntar al ejecutable JDK1.7 para hacerlo más claro –

2

Vale la pena observar que la variable JAVA5_BOOTCLASSES debe contener todas las bibliotecas necesarias, no solo rt.jar. En mi caso también fue jce.jar Por lo que es bueno para establecer esta variable usando este sencillo fragmento cuando se encuentra en el medio ambiente * nix:

export JAVA5_BOOTCLASSES="" 
for i in /usr/lib/jvm/java/jre/lib/*.jar; do 
    export JAVA5_BOOTCLASSES=$JAVA5_BOOTCLASSES:$i 
done 
Cuestiones relacionadas