2013-02-26 7 views
12

Non riesco a eseguire il mio Ant build.xml da quando ho aggiornato a java 1.7.0_52 (o circa). L'ho eseguito per anni tramite Eclipse localmente sul mio laptop Windows 7, ma con questo ultimo jave jdk update qualcosa di diverso (?).Ant "JAVA_HOME non punta al JDK" - ma lo fa

BUILD FAILED 
C:\workspace\WaterAspectsModel3\build.xml:329: Unable to find a javac compiler; 
com.sun.tools.javac.Main is not on the classpath. 
Perhaps JAVA_HOME does not point to the JDK. 
It is currently set to "D:\Morten\Java\jdk1.7.0_52" 

Questo è il mio jdk! Quindi JAVA_HOME punta a un jdk (come risulta anche dal messaggio di errore). Ho il mio JAVA_HOME con la cartella bin nel mio percorso come sempre. Ho configurato Eclipse - configurazione di strumenti esterni - con un JRE che punta allo stesso D: \ Morten \ Java \ jdk1.7.0_52 (tramite l'impostazione "Separate JRE"). E ho provato diverse altre configurazioni, tutte senza fortuna.

Ho letto le tonnellate di risposte sugli elenchi qui e in altri luoghi e penso di aver provato tutti i suggerimenti. La maggior parte sembrano essere casi in cui JAVA_HOME punta effettivamente a un jre e ha solo bisogno di essere corretto su jdk o c'è un ";" nel percorso o qualcosa del genere. Nessuno di questi sembra applicarsi nel mio caso.

Qualche suggerimento?

+0

Avete impostato la variabile di ambiente 'ANT_HOME'? È anche in "PERCORSO"? Questo è il percorso di sistema. –

+0

Che ne dici di stampe per 'java -version' e' javac -version' dal tuo bel cmd.exe? E anche cosa ti dice "JAVA_HOME" lì? – sjas

+0

Prova anche 'ant -version'. –

risposta

4

Il messaggio reale è che Ant non riesce a trovare com.sun.tools.javac.Main.

Che, insieme al fatto che l'ultimo JDK "Sun" (Oracle) è 1.7.0_13 (o forse _14, ma sicuramente non il "_52" indicato dalla directory di installazione), mi fa pensare che tu sia non usare una distribuzione che Ant riconosce. Puoi verificarlo eseguendo jar tvf $JAVA_HOME/lib/tools.jar e cercando quella classe.

Il Ant Manual parla dei modi per lavorare con diversi compilatori. Dal momento che ho usato solo compilatori "Sun", temo di non poterti dare alcun suggerimento.


Edit: si potrebbe anche provare a impostare fork="yes" nel file build. Questo dovrebbe eseguire l'eseguibile del compilatore piuttosto che provare a richiamare la classe del compilatore.

+4

È molto più probabile che la variabile JAVA_HOME punti a un JRE anziché a un JDK. Ci sono due distribuzioni di Java, solo il "Java Development Kit" contiene il comando ** javac ** e altri utili binari usati dagli sviluppatori –

+1

@ MarkO'Connor - probabilmente, anche se l'OP afferma di averlo controllato più volte, quindi non vedo alcun motivo per argomentare diversamente, la presenza (o l'assenza) di 'tools.jar 'sarebbe una prova evidente in entrambi i casi. La cosa che mi fa pensare che potrebbe essere qualcos'altro è il numero di versione della directory di installazione. – parsifal

+0

GRAZIE parsifal! Non ci sono ancora ma il "jar tvf tools.jar" indicava chiaramente che si trattava di un tools.jar di un progetto completamente diverso. Basta disinstallare e reinstallare il mio jdk. –

0

Prova ad aggiungere JAVA_HOME\bin al tuo env PATH.

+0

no luck - stesso messaggio (... anche se con lo stesso identico percorso?) –

+6

No, 'JAVA_HOME' dovrebbe essere la tua cartella' jdk', il percorso bin dovrebbe essere nella variabile di ambiente 'PATH'. –

+0

@SotiriosDelimanolis Ho modificato la mia risposta –

24

Avevo lo stesso messaggio quando si esegue ANT tramite Eclipse.

Quello che ha funzionato per me:

  1. In Eclipse, accedere al menu: "Finestra -> Preferenze";
  2. Accesso "Ant -> Runtime", all'albero;
  3. Accedere alla scheda Percorso classe;
  4. Espandere l'elemento "Voci globali";
  5. All'interno di voci globali, il percorso per tools.jar era errato. Stava puntando a una versione precedente di Java;
  6. Ho rimosso la voce errata e aggiunto quella corretta con il pulsante "Aggiungi giare esterne". Ha funzionato.

enter image description here

+0

Grazie - ha funzionato per me. mancava la voce tools.jar. L'ho risolto –

6

La soluzione "Had to copy C:\Program Files\Java\jdk1.6.0_10\lib\tools.jar to C:\Program Files\Java\jre6\lib\ext" dal here è stato grande disponibile e ha lavorato per me.

0

Aggiungi JAVA_HOME a Eclipse-Preferences-Java-Build Path-Classpath Variables.