2011-08-31 6 views
10

Come si imposta il percorso di avvio form in combinazione con -source 1.5 -target 1.5?Imposta ant bootclasspath: JDK 1.7 ha un nuovo avviso javac per l'impostazione di una fonte precedente senza bootclasspath

Come può non essere un percorso hardcoded per il JDK 1.5? Posso impostare una variabile di ambiente su bootclasspath simile a come JAVA_HOME può essere usato da formica?

Idealmente mi piacerebbe fare qualcosa come impostare una variabile d'ambiente o passare un argomento a formica.

+0

In realtà, è necessario solo il rt.jar del 1,5 JRE, non il pieno JDK , Credo. –

risposta

14

Ecco un esempio di come è possibile recuperare la posizione delle classi di avvio di Java 5 da una variabile di ambiente, quindi utilizzarla.

Innanzitutto, impostare la variabile di ambiente, ad esempio JAVA5_BOOTCLASSES. property task consente di accedere all'ambiente, quindi l'argomento bootclasspath dello javac task passa l'impostazione al compilatore.

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

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

Nota che se la variabile d'ambiente non è impostata, Formica sarà ignorarlo e procedere senza - in modo che il compilatore ricadrà al classpath di avvio di default.

Un'altra opzione, se pertinente, è switch off the warnings e non preoccuparsi del percorso di avvio. Qualcosa come

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

Ma è probabile che ti esponga ad alcuni bug sottili.

+0

Si potrebbe voler aggiungere la proprietà eseguibile nell'attività javac per puntare all'eseguibile JDK1.7 per renderlo più chiaro –

2

Vale la pena notare che la variabile JAVA5_BOOTCLASSES dovrebbe contenere tutte le librerie necessarie non solo rt.jar. Nel mio caso è stato anche jce.jar Quindi è bene impostare questa variabile utilizzando questo semplice frammento di quando in * nix ambiente:

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