olá, pessoal
ao tentar executar o maven recebo o seguinte erro:
~ $ mvn -verison
Error: JAVA_HOME is not defined correctly.
We cannot execute /usr/lib/jvm/jdk1.8.0_141/bin/java
mas acho que o valor da minha JAVA_HOME está correto:
~ $ echo $JAVA_HOME
/usr/lib/jvm/jdk1.8.0_141
ou não está?
e as últimas linhas do meu arquivo .bashrc são:
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_141
export PATH=$JAVA_HOME/jre/bin:$PATH
e a minha versão do Java
~ $ java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
meu ambiente é Linux Mint 18.2 XFCE
Tente declarar no /etc/environment (sem o export)
JAVA_HOME=/usr/lib/jvm/jdk1.8.0_141
Salve e feche o arquivo
source /etc/environment
1 curtida
adicionei ao final de /etc/environment, salvei e fechei
JAVA_HOME="/usr/lib/jvm/jdk1.8.0_141"
Abri outra sessão do terminal, mas o maven continua continua não rodando!
Execute javac -version
. Qual é o retorno?
raphaeloneves:
~ $ javac -version
The program 'javac' can be found in the following packages:
* default-jdk
* ecj
* gcj-5-jdk
* openjdk-8-jdk-headless
* gcj-4.8-jdk
* gcj-4.9-jdk
* openjdk-9-jdk-headless
Try: sudo apt install <selected package>
Troque o
export PATH=$JAVA_HOME/jre/bin:$PATH
Por
export PATH=$JAVA_HOME/bin:$PATH
O JRE que vem dentro do JDK serve apenas para você distribuir junto com sua aplicação caso queira depender dessa versão específica do Java
No PATH
basta incluir o JAVA_HOME/bin
para poder usar todos os programas de linha de comando.
staroski, o final do meu .bashrc ficou assim:
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_141
export PATH=$JAVA_HOME/bin:$PATH
salvei e fechei, mas o maven ainda não roda!
~ $ mvn -verison
Error: JAVA_HOME is not defined correctly.
We cannot execute /usr/lib/jvm/jdk1.8.0_141/bin/java
meu PATH:
echo $PATH /usr/lib/jvm/jdk1.8.0_141/bin:/home/rafael/bin:/home/rafael/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
Onde vc declarou o M2_HOME?
DarkElf, não declarei M2_HOME.
É necessário? Se sim, aonde devo declarar então?
obrigado!
Não precisa declarar o M2_HOME. Ele teria dado command not found se o mvn não estivesse “visível”, ou seja, ele já reconheceu o path do Maven.
Pela sua saída do javac, vc está sem um compilador instalado. Execute:
sudo apt-get install oracle-java8-set-default
Rode novamente o javac
arrumei o javac:
update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.8.0_144/bin/javac 100
agora ele já é reconhecido:
~ $ javac -version
javac 1.8.0_144
mas nada de rodar o maven até agora
~ $ mvn -verison
Error: JAVA_HOME is not defined correctly.
We cannot execute /usr/lib/jvm/jdk1.8.0_141/bin/java
Opa, blz??
Não uso linux, mas no Windows eu preciso declarar a variavel de ambiente “JAVA_HOME” apontando para o JDK “C:\Program Files\Java\jdk1.8.0_121”…
Se tu declarar isso no linux, apontando para o JDK não funciona?
Espero ter ajudado em algo.
Abraço!
Relendo seu tópico, esta solução do @staroski é a mais adequada pro problema. Vc está declarando o PATH errado.
Percebeu que o seu JDK é versão 1.8.0_144
e o maven está dizendo que o JAVA_HOME
aponta para a pasta de um JDK versão 1.8.0_141
?
O maven deve ter um arquivo de configuração onde o JAVA_HOME
está setado para um caminho que não existe.
Descubra que arquivo é esse e tire fora a linha onde ele seta o JAVA_HOME
, ou atualize para o caminho correto.
staroski, tinha razão, pesquisei por “jdk1.8.0_141” e o resultado foi esse!
`$ grep -r "jdk1.8.0_141" /
/home/rafael/.bashrc:export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_141
ou seja, eu quem estava setando errado o valor de JAVA_HOME errado desde o começo!
agora arrumei .bashrc:
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_144
export PATH=$JAVA_HOME/bin:$PATH
e deu certo
~ $ mvn -version
Apache Maven 3.3.9
Maven home: /usr/share/maven
Java version: 1.8.0_144, vendor: Oracle Corporation
Java home: /usr/lib/jvm/jdk1.8.0_144/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.8.0-53-generic", arch: "amd64", family: "unix"
obrigado!
1 curtida
Pessoal, estou com o mesmo problema só que no Windows, segue abaixo as minhas configurações se alguém puder me ajudar agradeço.
quando vc executa o comando mvn -version qual é a saída?
a mensagem é clara, falta configurar sua variável de ambiente JAVA_HOMA e fazê-la apontar para local onde está a pasta jdk1.8.0_144
Caro Rafael se puder me dizer para qual destes caminho devo apontar, fico grato.