Java 7 instalado no Mac OS X, mas o Terminal ainda está usando a versão 6

391

Instalei o JDK 7u7 baixado do site da oracle. Mas após a instalação, o terminal ainda está mostrando a versão java 6

$java -version
java version "1.6.0_35"
Java(TM) SE Runtime Environment (build 1.6.0_35-b10-428-11M3811)
Java HotSpot(TM) 64-Bit Server VM (build 20.10-b01-428, mixed mode)

alguma idéia de por que o java 7 não está aparecendo?

Resp: OK, o problema foi resolvido. Aqui está a resposta: Descobri que meu terminal tem um .bash_profile e a variável java home está definida como 1.6

export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home"

Portanto, esta é a linha que está causando o problema toda vez que eu abro uma nova janela do terminal. Basta remover esta linha para resolver o problema. Você ainda precisa seguir o que o @aleroot disse, mas se isso não funcionar, verifique o arquivo de configuração .bash_profile (ou .bashrc) para ver se você já exportou alguma versão java.

Yang
fonte
23
Eu tive esse problema, mas atualizei apenas o JRE e não o JDK. Depois de atualizar o JDK, ele mostrou a versão correta.
Paul Maserrat
Migrar para perguntar diferente?
Nakilon
14
Apenas para chamar mais atenção ao comentário de @ Mazzy, é um erro fácil de cometer. O download do JRE v7 fará com que a versão 7 apareça ao executar o verificador de versão on-line ou o painel de controle Java, mas ao chamar Java a partir da linha de comando, você estará executando a versão mais antiga do JDK instalado anteriormente. Portanto, verifique duas vezes para garantir que você instalou o JDK e não apenas o JRE.
Cam Jackson
11
A melhor maneira de resolver isso é usar a export JAVA_HOMEabordagem, conforme detalhado aqui de uma maneira um pouco mais flexível.
Brad Parks
5
Permitam-me enfatizar isso em letras maiúsculas: MUITAS PESSOAS QUE DESEJAM ESTA PÁGINA PRECISAM DE BAIXAR E INSTALAR O JDK MAIS RECENTE. O painel de controle JAVA apenas atualiza o JRE.
Walter Tross

Respostas:

64

Porque você precisa entrar no painel Preferências Java e sinalizar apenas a JVM 7 desta maneira:

Preferências Java

Para abrir com facilidade e rapidez o painel Preferências Java no Mac OS X, basta chamar o Spotlight com +SPACE e digitar Preferências do Sistema , que aparecerá na última linha da janela.

aleroot
fonte
3
sim, encontrei. mas ainda a versão 1.6 no terminal, eu preciso fazer para reiniciar ou algo
Yang
11
Este painel não existe mais no 10.8. Alternativas?
Pepijn
68
@Pepijn O panorama é histórico desde o Mac OSX 10.8.2 e não há mais necessidade disso. Em vez disso, você precisa usar export JAVA_HOME=`/usr/libexec/java_home -v 1.7`para alternar para o Java 7 JDK mais recente da Oracle.
Uwe Günther
23
Eu acho que eles se livraram das preferências do Java em algum momento. Não foi encontrado pelo Spotlight na minha caixa. Executando 10.8.5.
quickshiftin
11
Você pode encontrar a localização exata de JAVA_HOME em -> preferências do sistema -> java. Clique na aba "Java". Clique em ver. A variável Path mostra seu JAVA_HOME (tile / Home).
agaase
298

O instalador da Oracle coloca o java dentro do /Library/Internet Plug-Ins/JavaAppletPlugin.plugin. E não substitui /usr/bin/java. Então, se você emitir um

whereis java

no terminal, ele retornará / usr / bin / java. (que por sua vez aponta para /System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/java, que é a versão 1.6 da Apple).

Portanto, se você quiser usar a nova versão java, substitua o /usr/bin/javalink simbólico para que ele aponte para /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java:

sudo rm /usr/bin/java
sudo ln -s /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java /usr/bin
Ákos
fonte
22
Aqui está o comando: sudo ln -s / Biblioteca / Internet \ Plug-Ins / JavaAppletPlugin.plugin / Conteúdo / Home / bin / java / usr / bin
Binarian
11
O comando de Viktor funciona. Mas você também pode precisar de ter a certeza de remover o link simbólico java existenterm /usr/bin/java
Matt Florence
7
Até o Oracle gente melhorar este processo, aqui está um HOWTO de todo o processo de instalação do java em um sistema OSX, até e incluindo esta etapa link simbólico final: gist.github.com/johan/10590467
ecmanaut
61
eu tenhorm: /usr/bin/java: Operation not permitted
Aditya
37
Ouexport PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"
Mick
114

Instale o JDK 7 e esse problema se resolverá.

Certifique-se de obter o Java Development Kit (JDK), que inclui compiladores e coisas assim, em vez de apenas o Java Runtime Environment (JRE).

BrainO2
fonte
7
instale o JDK completo, não apenas o JRE.
BrainO2
5
-1 Não ajudou. A instalação do JDK não muda /usr/bin/javanem JAVA_HOME. Mas configuração de JAVA_HOMEajudou.
Andrii Nemchenko
3
Confirmado OK no OSX 10.9.4. Ele não altera o link / usr / bin, muda as coisas abaixo dele. Então /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java # But: /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java -version java version "1.7.0_67"
Joe Atzberger
11
Também trabalhou para JDK 1.8 - (instalar o JDK 1.8 em vez de JRE 1.8)
Mark Chackerian
Tentei instalar o Java 1.8, mas isso não funcionou no El Capitan. A instalação do 1.7 resolveu meus problemas.
SPRBRN 17/10/2015
104

vi ~/.bash_profile

adicionar

export JAVA_HOME=`/usr/libexec/java_home -v 1.7`

Isso indica /usr/bin/javaao destino do link para usar o pacote Java 7 mais recente instalado no

/Library/Java/JavaVirtualMachines/

Então, para o JDK 1.7.0_17 JAVA_HOMEseria:

/Library/Java/JavaVirtualMachines/jdk1.7.0_17.jdk/Contents/Home

Nota: Houve muitas mudanças nessa área recentemente para mover o Mac OS X dos pacotes Java integrados ao sistema da Appels para Pacotes Java baseados no Oracle. A solução acima está funcionando bem no Mac OS X 10.8.2

Uwe Günther
fonte
4
+1 para esta resposta, que é imo a correta, porque funciona nas versões do Mac OS antes e depois da remoção das 'Java Preferences' e, ao mostrar a opção "-v", demonstra como você pode usar o java 6, mesmo que o java 7 está instalado (que é o que eu quero). Portanto, no meu Mac executando o Lion (10.7.5), uso o mesmo comando com "-v 1.6". Isso é crucial porque eu preciso do Java 6 e o ​​Oracle não fornece um para o Mac OS - apenas o Java 7, e isso permite que eu use o JAva 6 instalado, mesmo que o Java 7 esteja instalado.
Ruibarbo
11
Além disso, para torná-lo mais flexível: mikemainguy.blogspot.com/2014/11/…
Mainguy
informações adicionais podem ser encontradas aqui para esta resposta incrível!
Brad Parks
Isso funcionou para mim no Sierra 10.12 depois de instalar o 1.8 JKD, a exportação funcionou alterando 1.7 para 1.8. Ótima resposta usando o utilitário java_home !!
22817 Scott Byers
56

No meu caso, o problema era que o Oracle estava instalando-o em um local diferente do que eu estava acostumado.

Faça o download no Oracle: http://java.com/en/download/mac_download.jsp?locale=en

  1. Verifique se ele está instalado corretamente, procurando em Prefs do sistema:

    • Espaço de comando para abrir o Spotlight, digite 'System Preferences', pressione enter.
    • Clique no ícone Java na linha inferior. Depois que o Painel de controle Java for aberto, clique na guia 'Java', 'Exibir ...' e verifique se sua instalação funcionou. Você também pode ver um 'Caminho', que pode ser usado nos comandos abaixo, caso sejam diferentes dos meus.
  2. Verifique se a versão está conforme o esperado (sub no seu caminho, conforme necessário):

    / Biblioteca / Internet \ Plug-Ins / JavaAppletPlugin.plugin / Conteúdo / Home / bin / versão-java

  3. Crie um link de / usr / bin / java para sua nova instalação

    sudo ln -fs / Biblioteca / Internet \ Plug-Ins / JavaAppletPlugin.plugin / Conteúdo / Página inicial / bin / java / usr / bin / java

  4. Sanidade, verifique sua versão:

    versão-java

dale.hamill
fonte
Também funcionou para mim. Também tentei a outra explicação, mas com o Maverix não há painel onde você possa selecionar um número de versão e também alterar o arquivo .bash_profile. PERFEITO!
Alex Cio
Eclipse é não ver 1.7 sob compilador
Laser Falcão
Trabalhou para mim! Antes = 1.6.0_65 e Depois de usar esta solução = 1.7.0_60 .... obrigado! :)
maths
mas eclipse dá erro como ainda 'a biblioteca compartilhada jvm não contém o símbolo jni_createjavavm' .... :(
maths
11
Obrigado pela ajuda! Nada mais funcionou, exceto isso. Executando Yosemite
LordZardeck
33

Eu tive um problema semelhante com o terminal que não atualiza a versão java para corresponder à versão instalada no mac.

Não houve nenhum problema com a variável de ambiente JAVA_HOME sendo configurada

Eu criei uma solução temporária e um tanto dolorosa, mas funcional.

Em você .bash_profile adicione a linha:

export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_11.jdk/Contents/Home"

(Este é o caminho na minha máquina, mas pode ser diferente do seu, certifique-se de obter o seu. Os caminhos devem corresponder a / Library / Java / JavaVirtualMachines /)

a corrida source ~/.bash_profile

Como mencionei, esta é uma solução de band-aid temporária porque o caminho inicial do java está sendo codificado. Não há realmente nenhuma maneira de definir o caminho para obter as informações mais recentes, pois é isso que a Apple já está fazendo para o terminal e o problema é que a variável de ambiente java_home da Apple não está sendo atualizada.

Derek
fonte
4
O diretório está vazio. $ Ls / Library / Java / JavaVirtualMachines /
Pepijn
11
Você provavelmente tem um problema com o local onde instalou o java 7. Por favor, acesse o site da oracle . Clique no link "Java SE Development Kit 7u11", aceite o contrato de licença e faça o download de "jdk-7u11-macosx-x64.dmg". Use o dmg para instalar o Java 7 e isso deve colocá-lo no diretório JavaVirtualMachines.
Derek
Esta é uma solução no Mojave 10.14.1 no início de 2019
bitsand 07/02/19
27

Desde El Capitan, é difícil excluir o /usr/bin/javalink simbólico, devido à introdução da nova política "sem raiz".

Portanto, eu simplesmente adicionei o caminho para a versão mais recente do java (no meu caso, isso é /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin) PATHno .bashrcarquivo:

# Use latest java version
export PATH=/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH

Para recarregar seu .bashrcarquivo para a sessão atual, execute source ~/.bashrcno shell. Você só precisa fazer isso para as sessões iniciadas antes de alterar o .bashrcarquivo.

Agora a versão mais recente é usada quando você usa javao shell.

TabeaKischka
fonte
11
Essa solução em particular funcionou para mim no meu mac os x el capitan. Não ignorei a segurança configurada no el capitan, mas instalei a versão 1.8 do java. Fazer a exportação JAVA_HOME = / meu caminho específico etc etc / não funcionou (depois de ir para preferências e localizar o caminho para 1.8). Observe que o 1.6 ainda está instalado. Eu tive que criar um arquivo .bashrc e definir o caminho conforme descrito aqui. Corri a versão java e shazzam! funcionou.
Julio
Eu queria que isso funcionasse, pois estou no El Capitan e não consigo nenhuma outra solução para funcionar. Criei um arquivo '.bashrc' e adicionei a linha como acima, mas se eu digitar 'java -version' ainda recebo a versão 1.6. Algo que eu poderia ter esquecido?
NoLongerRandom
@ user3810073 talvez você precise executar source .bashrc, a fim de recarregar o conteúdo do .bashrc
TabeaKischka
Trabalhou para mim. Adicionei a linha a .bash_profile (no diretório inicial do meu usuário) e depois a fonte .bash_profile. Então java -version me deu a mais recente. Obrigado!
Mrmuggles
Isso também pode ser conseguido através do link simbólico para o /usr/local/binseguinte: sudo ln -sf "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java" /usr/local/bin/java Essa suposição /usr/local/biné anterior /usr/binà sua, $PATHque deve ser por padrão.
Lifeofguenter #
21

Para mim, a maneira mais fácil e limpa de instalar é instalar o Java usando o homebrew como descrito aqui:

https://stackoverflow.com/a/28635465

brew update
brew cask install java
Bernhardt Scherer
fonte
Solução simples e limpa! Funcionou como um encanto.
Rahul Shukla
2
Esta é a única solução que atualizou o java e o javac. Obrigado!
Ldanilek 3/17
Trabalhou como charme :) Muito obrigado
Mohamed Saleh
isso instalará a versão mais recente do java, não Java7
Ivo
13

O problema básico: /usr/bin/javaestá apontando para um fornecido pelo próprio OSX inicialmente ( /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java) Precisamos apontar isso para o baixado pelo instalador do JDK. As etapas abaixo são para o OSX 10.10.4 Yosemite.

  • Abra Preferências do Sistema -> selecione Java. A janela Java é aberta.
  • Clique na guia Java na parte superior. Clique no botão 'Ver'.
  • A guia Configurações do Java Runtime Environment é aberta como abaixo: Guia Configurações do JRE
  • Clique duas vezes no Pathitem e copie o caminho (cmd + c). Este é o mais recente instalado pelo instalador / atualizador do JDK. No meu caso, o caminho foi/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java
  • Terminal aberto. Nesta etapa, vamos apontar (link simbólico, ln -scomando) o binário java do sistema para o mais recente, que descobrimos na etapa anterior. Execute o comando abaixo:

sudo ln -s /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java /usr/bin/java

É isso aí. Para verificar, você pode simplesmente rodar java -version no terminal. Ele deve gerar a versão mais recente em que você instalou / atualizou.

Aswin Kumar
fonte
2
Funciona para mim, exceto que eu tive que adicionar -f ao comando ln. Caso contrário, se falhar com ln: / usr / bin / java: o arquivo existe
Dale
no meu caso eu tinha de usar usr/local/bin, em vez de usr/binno comando do terminal
iAkshay
Estou recebendo "operação não permitida".
Shardul 16/11/19
Obter o caminho dessa maneira é ideal. Consegui exportá-lo e recarregar o bashrc para resolver o problema de versão. No meu caso, eu estava migrando da versão 7 para 8 no Mojave 10.14.1
bits e
12

Você pode executar o seguinte comando no seu terminal:

export PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"

E isso substitui o java antigo pelo novo.

Amulya Kashyap
fonte
11
Estranhamente ele substitui, mas, em seguida, se eu fechar terminal e abrir de novo, versão ele mostra novamente mais velho
Parth Patel
isso é verdade. tão sem sentido. solução muito temporária
Um usuário
11
adicione-o ao arquivo .bashrc e, source ~/.bashrcem seguida, para torná-lo permanente #
Azimjon Ilkhomov
10

eu fiz

export JAVA_HOME=`/usr/libexec/java_home`

e isso corrigiu meu problema do Java 8.

antes:

java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
Java HotSpot(TM) 64-Bit Server VM (build 20.6-b01, mixed mode)

depois de:

java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode)
Climbs_lika_Spyder
fonte
11
A /usr/libexec/java_homeindicação é muito boa, obrigado!
Raffi
11
Fiz o trabalho depois de ler toneladas de soluções possíveis! Obrigado :)
ronnyrr
7

http://www.java.com/en/download/faq/java_mac.xml é um bom lugar para entender, enquanto a Apple está parando o suporte ao Java, por que o Java Preferences não existe mais e depende de System_Preferences => Java = > Java se o Java 7 da Oracle estiver instalado.

reverter
fonte
2
Esta é uma boa informação, mas você realmente deve fornecer mais detalhes do que apenas um link. Se o link for quebrado no futuro, sua resposta realmente não será muito útil.
psubsee2003
7

Posso sugerir que você dê uma olhada na ferramenta Jenv

Isso permitirá que você alterne a qualquer momento entre suas JVMs instaladas.

Simplesmente como:

jenv global oracle-1.7

depois, para fins de teste:

jenv global oracle-1.6

E você tem muito mais comandos disponíveis.

TitiMoby
fonte
Marque com +1 esta resposta, pois você pode utilizar o Homebrew, se já o estiver usando no sistema OS X. Muito mais limpo do que outros eu digo. Mais informações aqui: jenv.be
piku
6

Codificar o caminho JAVA_HOME pode não ser a melhor ideia. O /usr/libexec/java_homeparapeito do utilitário funciona para mim no Mac OSX Lion 10.7.5 e no JDK 1.7.0_13. De acordo com sua página de manual, ele deve ser usado com o antigo painel Java Preferences da Apple, mas parece estar funcionando com a substituição fornecida pelo Oracle (Java Control Panel). Por exemplo, a /usr/libexec/java_home -Vlista de execução de todos os JDKs instalados (ambos 1.6. * E 1.7. *) Na minha máquina.

Portanto, conforme discutido em outros threads (por exemplo, o que devo definir JAVA_HOME no OSX ), eu ainda recomendaria adicionar a seguinte linha ao seu .bash_profile:

export JAVA_HOME=$(/usr/libexec/java_home)
zagyi
fonte
Concordo com o seu comentário aqui, porque essa é uma prática recomendada, mas por algum motivo a variável de ambiente java_home não está sendo definida corretamente e é por isso que isso não funciona. Acredito que na atualização mais recente da Apple, sua sugestão é a ação padrão para JAVA_HOME no terminal e em outros aplicativos relacionados por padrão.
Derek
@Derek O que você quer dizer exatamente com "a variável de ambiente java_home não está sendo definida corretamente"? De acordo com este artigo, o /usr/libexec/java_homeutilitário deve funcionar também com as versões java 7 e retorna o caminho para o JDK mais atualizado instalado. Funciona perfeitamente na minha máquina.
zagyi
11
sim, é suposto funcionar, no entanto, não é para pessoas com o problema que a pepijin havia mencionado.
Derek
6

Isso é loucura! Como a Oracle fornece um instalador que não instala nada !?

De qualquer forma, para mim foi:

sudo rm /usr/bin/java
sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/bin/java /usr/bin/java

onde 1.8.0_31 é sua versão java instalada ...

Kevin Parker
fonte
Por que a Apple não fornece um método adequado?
jwilleke
6

Caso você tenha várias versões Java em sua máquina e queira escolhê-las dinamicamente em tempo de execução, ou seja, no meu caso, tenho duas versões:

ls -la /Library/Java/JavaVirtualMachines
drwxr-xr-x  3 root  wheel    96B Nov 16  2014 jdk1.7.0_71.jdk/
drwxr-xr-x  3 root  wheel    96B Mar  1  2015 jdk1.8.0_31.jdk/

Você pode alterá-los modificando o conteúdo do / etc / profile. Basta adicionar (ou modificar) as duas linhas a seguir no final do arquivo:

export JAVA_HOME=YOUR_JAVA_PATH/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

No meu caso, deve ser o seguinte se eu quiser usar:

Java 7:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

Java 8:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

Depois de salvar o arquivo, execute source /etc/profile e ele deve funcionar. Aqui estão os resultados quando eu uso a primeira e a segunda opção de acordo:

Java 7:

java -version
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)

Java 8:

java -version 
java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)

O processo é semelhante se a sua pasta java estiver localizada em locais diferentes.

nxhoaf
fonte
5

Solução Simples

export PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"
Mick
fonte
Impressionante. Esta solução fez o meu dia. Muito obrigado Mick
Um usuário
3

Eu acho que você pode tentar instalar o jdk não o jre. Ao instalar o jdk, o java em / usr / bin / java será substituído e toda a biblioteca funcionará bem.

DDDrop
fonte
3

Se você tiver o Homebrew instalado, poderá instalar o java-switcher para alterar a versão padrão do Java mais rapidamente

brew tap andycillin/tap
brew install java-switcher

Em seguida, você pode usar apenas um comando para alternar sua versão Java padrão.

java-switcher 1.7

ou

java-switcher 10
Andy Tran
fonte
Obrigado Andy, isso foi fácil.
GreenROBO 31/10/19
1

Você pode executar este comando para encontrar a versão do Java em / Library / Internet Plugins /:

defaults read /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Info.plist CFBundleVersion
Hefewe1zen
fonte
1

Está acontecendo porque o seu .bash_profile não está refletindo alterações.Para refletir isso, basta usar o seguinte comando

$ source .bash_profile
Raghav Sharma
fonte
0

Como não enfrentei esse problema, estou tendo um pressentimento -

Você pode tentar o seguinte:

Para onde o link virtual "java_home" aponta para:

ls -lrt /usr/libexec/java_home

Saída: (Stunted) lrwxr-xr-x java_home -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java_home

** ls -lrt /System/Library/Frameworks/JavaVM.framework/Versions My MAC Produz o seguinte:

 lrwxr-xr-x CurrentJDK ->
 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents**

 lrwxr-xr-x   Current -> A
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.6.0 -> CurrentJDK
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.6 -> CurrentJDK
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.5.0 -> CurrentJDK
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.5 -> CurrentJDK
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.4.2 -> CurrentJDK
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.4 -> CurrentJDK

Com base nisso, podemos obter uma dica para prosseguir?

user1428716
fonte
leia alguns comentários na Internet sobre os problemas do Java 7 no MAC-OSX e ele será bloqueado . Consulte: grep.dk/tag/xprotect-meta-plist . No XProtect.meta.plist, tenho o Java 7 e o Flash listados. Até que esteja jogando a Polícia de Vulnerabilidades
user1428716
0

Eu resolvi esse problema reinstalando o Yosemite e depois cruzando a versão java no terminal (java -version) e (javac -version). Ele funciona perfeitamente agora. ) libray> java> javavirtualmachine> sua versão atual do javac. você precisa endereçar para java home.

AJAY
fonte
0

Eu resolvi esse problema com sudo rm /usr/bin/java

E baixei e instalei o último Java SE Runtime Environment: http://www.oracle.com/technetwork/java/javase/downloads/index.html

sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/bin/java /usr/bin/javanão funcionou para mim porque eu consegui Operation not permitted. O El Capitan agora protege certos diretórios do sistema no modo "sem raiz" (também conhecido como System Integrity Protection). É aplicável ao macOS Sierra e, provavelmente, novas versões do macOS para o futuro próximo.

Charles Hamel
fonte
0

A instalação por meio do JDK DMG distribuído do site Oracle atualiza tudo automaticamente para mim. Eu vi (em El Capitan) atualizando através de System Preferences > Javaatualizações, mas isso não reflete a linha de comando. A instalação através do DMG faz o trabalho.

Santanu Karar
fonte
0

Verifique as versões do JDK instaladas:

$ ls  /Library/Java/JavaVirtualMachines/
jdk-11.0.2.jdk  jdk1.8.0_91.jdk

Agora em sua ~/.bashrcexportação, JAVA_HOMEespecificando a versão:

if [ -e /usr/libexec/java_home ]; then
  export JAVA_HOME=$(/usr/libexec/java_home -v 11)
fi

Crie o arquivo bashrc e a versão Java será atualizada:

$ java -version
java version "11.0.2" 2019-01-15 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.2+9-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.2+9-LTS, mixed mode)
Miguel Mota
fonte
0

O mais recente método 100% eficaz:


no bash:

vim ~/.bash_profile

adicionar

export PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"
  • :wq salvar
  • cmd + q força sair do bash
  • abra o bash novamente e digite java -version

Mas, na verdade, esse caminho aponta para jre e não jdk.

Se você deseja apontar o caminho para o JDK, precisará

  1. Certifique-se de ter instalado o JDK e não um único tempo de execução do JRE
  2. Para substituir o caminho anterior PATH="/Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk", você pode verificar /Library/Java/JavaVirtualMachinesse instalou a versão do JDK que esperava.
liangli
fonte