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!
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
acredito que se vc colocar assim vai dar certo:
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_144
depois vc chama a variável no prompt pra ver se o valor está mostrando corretamente
Como diz a mensagem, o JAVA_HOME deveria apontar para a raíz do JDK mas você apontou para a raíz do JRE.