2010-01-27 9 views
5

Sto sviluppando un'applicazione nel cacao che utilizza alcune classi java. Ricevo un errore "JAVA_HOME non è definito correttamente Non è possibile eseguire /System/Library/Frameworks/JavaVM.framework/Home /bin/java".I non sai come risolvere this..Please qualcuno mi può aiutare ..JAVA_HOME non è definito correttamente Errore durante la compilazione

Grazie in anticipo

risposta

2

Impostare JAVA_HOME per puntare alla directory .../Home, non il java binario. Per esempio.

export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home 

Perché si imposta la variabile di ambiente in primo luogo? Non si dovrebbe avere a che fare questo su OS X ...

+0

E 'necessario, ad esempio, durante l'esecuzione di script Ant. –

20
export JAVA_HOME=`/usr/libexec/java_home` is exactly what you want to do. 

Infatti, tutti i progetti Apache (beh, qualsiasi progetto in realtà) che hardcodes /System/Library/Frameworks/JavaVM.framework/Versions/... ha bisogno di usare/usr/libexec/java_home se esiste. È l'unico modo per sapere se Java è effettivamente installato.

A un certo punto in futuro i collegamenti simbolici in /System/Library/Frameworks/JavaVM.framework/Versions/ andranno via, il che interromperà ancora più gravemente questi progetti se si desidera caricare utilizzando una JVM Oracle/OpenJDK .

+0

Grazie mille :) Per caso, sai perché non si possono usare virgolette doppie/diritte? – pasql

+0

Sarà persistente tra riavvii? –

0

Nel file .bashrc, aggiungere di seguito le linee:

export JAVA_HOME=/usr 
export PATH=$PATH:$JAVA_HOME 

Questo ha funzionato per me.

0

Alcune volte cambiando JAVA_HOME non aiuta, perché in script ant apache la JAVA_HOME è hardcoded. Se quando si modifica la JAVA_HOME non è riuscito ancora a correre formica, si può provare a cambiare il hardcode predefinito al tuo JAVA_HOME in script ant, come:

$ vi /Users/apache-ant-1.8.3/bin/ant 
    #ant from line 83 to 93 
    case "`uname`" in 
     CYGWIN*) cygwin=true ;; 
     Darwin*) darwin=true 
       if [ -z "$JAVA_HOME" ] ; then 
#delete JAVA_HOME=XXXXX(default line) , and give JAVA_HOME ur java home url  




JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home 
          fi 
          ;; 
        MINGW*) mingw=true ;; 
       esac 
Problemi correlati