GNU/Linux >> Linux Esercitazione >  >> Linux

Gradle trova JAVA_HOME errato anche se è impostato correttamente

Si scopre che il particolare binario Gradle che ho scaricato dal repository Ubuntu 13.10 stesso tenta di esportare JAVA_HOME. Grazie a Lucas per aver suggerito questo.

/usr/bin/gradle riga 70:

export JAVA_HOME=/usr/lib/jvm/default-java

Commentare questa riga risolve il problema e Gradle trova il percorso corretto per il binario Java.

Se scarichi semplicemente il binario dal loro sito Web, non ha questo problema, è un problema con la versione repository di Ubuntu. Sembra che ci siano anche altri problemi con la versione 13.10.


aggiungere un collegamento simbolico

sudo ln -s /usr/lib/jvm/java-7-oracle /usr/lib/jvm/default-java

La soluzione è creare JAVA_HOME ==dir sopra bin dove risiede javac come in

type javac

javac is /usr/bin/javac   # now check if its just a symlink

ls -la /usr/bin/javac 

/usr/bin/javac -> /etc/alternatives/javac   # its a symlink so check again

ls -la /etc/alternatives/javac  # now check if its just a symlink

/etc/alternatives/javac -> /usr/lib/jvm/java-8-openjdk-amd64/bin/javac

OK, finalmente ho trovato il cestino sopra javac effettivo, quindi fallo

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH

sopra può essere semplificato e generalizzato a

which javac >/dev/null 2>&1 || die "ERROR: no 'javac' command could be found in your PATH"
export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which javac)  )))

Linux
  1. Come aggiungere correttamente un percorso al percorso?

  2. Esempi di comandi di esportazione Linux (come impostare le variabili di ambiente)

  3. Trova JAVA_HOME e impostalo su RHEL

  4. PIP install non riesce a trovare ffi.h anche se riconosce libffi

  5. Linux Framebuffer imposta correttamente la risoluzione

Come installare Java su CentOS 7 (imposta java_home)

Come impostare correttamente la variabile JAVA_HOME in Ubuntu Linux

Nginx tenta ancora di aprire il file di registro degli errori predefinito anche se ho impostato il file di configurazione di nginx durante il ricaricamento

Virtualenv usa un pitone sbagliato, anche se è il primo in $PATH

Come posso impostare un nick predefinito per le nuove connessioni irssi?

/bin/ls non trovato, anche se esiste!