Eu sou novo no sistema Linux e parece haver muitas pastas Java.
java -version me dá:
- versão java "1.7.0_55"
- Ambiente de tempo de execução OpenJDK (rhel-2.4.7.1.el6_5-x86_64 u55-b13)
- VM do servidor OpenJDK de 64 bits (compilação 24.51-b03, modo misto)
Quando estou tentando criar um projeto Maven, estou recebendo um erro:
Error: JAVA_HOME is not defined correctly.
We cannot execute /usr/java/jdk1.7.0_05/bin/java
Você poderia me dizer quais arquivos eu preciso modificar para o usuário root e não root e onde exatamente está o java?
java
linux
java-home
path-variables
Bosco
fonte
fonte
JAVA_HOME
, não prejudica configurá-lo também.source /etc/profile
para que as alterações entrem em vigor imediatamente também!/etc/profile.d/jdk.sh
flutuando no meu sistema.Para todos os usuários, eu recomendaria colocar a seguinte linha em
/etc/profile
Isso será atualizado dinamicamente e funciona bem com o sistema de alternativas . Observe, porém, que a atualização ocorrerá apenas em um novo shell de logon.
fonte
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:/bin/java::")
- observe que eu uso apenasjava
, nãojavac
readlink
e atualização / atualização de solução compatível, mesmo que esse seja um encadeamento de 5 anos. Eu só recomendo não editar o / etc / profile, mas coloque sua exportação dentro de um arquivo personalizado, por exemplo/etc/profile.d/java_environment.sh
, talvez seja necessáriochmod +x java_environment.sh
e reinicie.dirname
solução desajeitada . Se você é como eu e quer entender o que está acontecendo aqui, é uma simples substituição do texto correspondente da entrada por uma string vazia. O caractere "padrão" para substituições é o/
, mas enquanto você for consistente, poderá substituí-lo/
por qualquer coisa. Nesse caso, são dois pontos, como usamos/
para separadores de caminho.Você pode usar / etc / profile ou melhor, um arquivo como /etc/profile.d/jdk_home.sh
Você deve se lembrar que este arquivo é carregado apenas com novas shells de login. Então, após o bash -l ou uma nova sessão do gnome e que ele não muda com as novas versões do Java.
fonte
/etc/profile.d/*.sh
para que o seu arquivo precisa ser chamadojdk_home.sh
por isso, recebe origem/etc/profile.d/jdk_home.sh
é a resposta muito mais limpa, pelo menos para o Ubuntu , já/etc/profile
está cheia de muita lógica. Será que não parece sensato para adicionar mais para ele ...Nenhuma das outras respostas estava "aderindo" para mim no RHEL 7, mesmo configurando
JAVA_HOME
ePATH
diretamente/etc/profile
ou~/.bash_profile
não funcionaria. Cada vez que eu tentava verificar seJAVA_HOME
estava definido, ele fica em branco:O que eu tive que fazer foi configurar um script em
/etc/profile.d/jdk_home.sh
:Inicialmente, negligenciei a primeira linha (the
#!/bin/sh
) e ela não funcionará sem ela.Agora está funcionando:
fonte
É muito fácil definir um caminho no Linux. Faça o seguinte:
Etapa 1 Abra o terminal e digite
sudo gedit .bashrc
Etapa 2 Ele solicitará sua senha. Depois de digitar a senha, ele abrirá o arquivo bash. Então vá para o final e digite abaixo
etapa 3
passo-4 Em seguida, salve o arquivo e saia do arquivo
Acima é para um único usuário. Para todos os usuários, você deve seguir as etapas abaixo
Passo 1
gedit /etc/profile
Passo 2
export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/"
Etapa 3
export PATH=$PATH:$JAVA_HOME/bin
Espero que isto ajude. Obrigado!
fonte
Fazendo o que a Oracle faz (como ex-funcionário da Sun, não posso me acostumar com isso)
ln -s latestJavaRelease / usr / java / default
Onde latestJavaRelease é a versão que você deseja usar
exporte JAVA_HOME = / usr / java / default
fonte
A resposta é dada posts anteriores é válido. Mas nenhuma resposta está completa com relação a:
Portanto, como declarado acima, crie o arquivo /etc/profile.d/custom.sh para alterações personalizadas.
Agora, para manter-se sempre atualizado com as versões mais recentes do Java sendo instaladas, nunca coloque o caminho absoluto; use:
fonte
Copie o caminho do arquivo bin que você instalou
abra o terminal e edite o arquivo do ambiente digitando o seguinte comando,
Nesse arquivo, adicione a seguinte linha (substituindo
YOUR_PATH
pelo caminho recém-copiado):Isso deve ser suficiente para definir a variável de ambiente. Agora recarregue este arquivo:
agora teste-o executando:
fonte
/usr/lib/jvm/default-java/
No Linux, adiciono esta linha ao meu ~ / .profile:
fonte
Etapa 1 - verifique a versão java atual "echo $ JAVA_HOME"
Etapa 2 - vim / etc / profile
Etapa 3 - No final do arquivo, você encontrará a exportação JAVA_HOME, precisamos fornecer o novo caminho aqui, verifique se ele não é relativo.
Etapa 4 - Salvar e sair: wq
Etapa 5 - "source / etc / profile /", isso executaria a alteração
Etapa 6 - Novamente, faça um eco $ JAVA_HOME - a mudança teria sido refletida.
fonte
1 ... Usando o atalho
Ctlr
+Alt
+T
para abrir o terminal2 ... Execute o comando abaixo:
3 ... (Recomendado) Reinicie sua VM / computador. Você pode usar
source /etc/source
se não quiser reiniciar o computador4 ... Usando o atalho
Ctlr
+Alt
+T
para abrir o terminal5 ... parcela JAVA_HOME verificada com
Cópia de uma linha do flob , creditada a eles
fonte
fonte
Provavelmente, é uma boa ideia buscar qualquer perfil que você editar para economizar, tendo que usar um novo login.
ou: source / etc / ou. / etc /
Onde está o perfil que você editou.
fonte
Enquanto estivermos configurando o JAVA_HOME, deixe-me compartilhar alguns benefícios da configuração do JAVA_HOME ou de qualquer outra variável de ambiente:
1) É fácil atualizar o JDK sem afetar o arquivo de inicialização e configuração do aplicativo, que aponta para JAVA_HOME. você só precisa fazer o download da nova versão e verificar se o seu JAVA_HOME aponta para a nova versão do Java. Esse é o melhor benefício do uso de variáveis ou links de ambiente.
2) A variável JAVA_HOME é curta e concisa, em vez de caminho completo para o diretório de instalação do JDK.
3) A variável JAVA_HOME é a independência da plataforma, ou seja, se seu script de inicialização usa JAVA_HOME, ele pode ser executado no Windows e UNIX sem nenhuma modificação, basta definir JAVA_HOME no respectivo sistema operacional.
Leia mais: http://javarevisited.blogspot.com/2012/02/how-to-set-javahome-environment-in.html#ixzz4BWmaYIjH
fonte
Este é um script muito simples para resolver o problema
E para testar:
fonte
Postando como resposta, pois não tenho o privilégio de comentar.
Nota : siga a resposta aceita postada por "That Dave Guy".
Após definir as variáveis, defina as permissões apropriadas para o diretório java em que está instalado.
fonte
Todas as etapas operacionais (localização de java, diretório pai, arquivo de edição, ...)
Resultado:
Explicação:
1) Vamos dividir o comando completo em pedaços
2) Encontre o caminho java no comando java
3) Obter caminho relativo do caminho simbólico
4) Obter caminho pai de
/usr/lib/jvm/java-11-openjdk-11.0.7.10-1.el8_1.x86_64/bin/java
5) Obter caminho pai de
/usr/lib/jvm/java-11-openjdk-11.0.7.10-1.el8_1.x86_64/bin/
fonte
Use SDKMAN sdkman.io para alternar entre btw. seu SDK.
Ele define o JAVA_HOME para você.
fonte
abra o kafka-run-class.sh com o sudo para escrever
você pode encontrar o kafka-run-class.sh na sua pasta kafka : kafka / bin / kafka-run-class.sh
verifique estas linhas
Modifique a variável JAVA na parte else para apontar para o executável java em seu java / bin. como JAVA = "$ JAVA_HOME / java"
fonte
No / etc / profile, se você abrir, você saberá que NÃO é recomendado escrever nesse arquivo. Em vez disso, crie um script com seus comandos (suponha que test.sh) vá para a pasta /etc/profile.d e coloque test.sh lá. Sempre que você reiniciar a instância, ela será automaticamente chamada por / etc / profile.
fonte
Eu uso a linha:
no meu ~ / .profile, para que ele use a base do diretório java padrão no momento do login. Isto é para bash.
fonte