Como instalar o Java 8 no Mac
Eu quero fazer alguma programação com o mais recente JavaFX, que requer Java 8. Estou a usar Intelij 13 CE e Mac OS X 9 Mavericks. Verifiquei o instalador Java 8 da Oracle, e os ficheiros parecem ter acabado em
/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk
mas as versões anteriores estão em
/System/Library/Java/JavaFrameworks/jdk1.6....
não sei porque é que o último instalador coloca isto em {[[2]} em vez de /System/Library
(nem Qual é a diferença). Mas /usr/libexec/java_home
não encontra 1.8, por isso todas as mensagens que encontrei sobre como definir a sua versão java actual não trabalhes. Eu tentei adicionar um link simbólico para fazer parecer que 1.8 está no caminho /System/Library...
, mas isso não ajuda. /usr/libexec/java_home -V
ainda só lista o Velho Java 1.6.
29 answers
A Oracle tem um mau registo para facilitar a instalação e configuração do Java, mas usando o Homebrew , o mais recente OpenJDK (Java 14) pode ser instalado com:
brew install --cask adoptopenjdk8
Para muitos casos de Uso dependendo de uma versão mais antiga (geralmente Java 8), o projeto AdoptOpenJDK torna possível com um passo extra.
brew tap adoptopenjdk/openjdk
brew install --cask adoptopenjdk8
Os utilizadores existentes de Homebrew podem encontrar Error: Cask adoptopenjdk8 exists in multiple taps
devido a trabalhos anteriores com instruções diferentes. Isto pode ser resolvido através da especificação completa do localização com brew cask install adoptopenjdk/openjdk/adoptopenjdk8
.
Nota: Oracle Java 8/9/10 já não está disponível para download público (alteração de licença).
Primeira instalação e actualização Cerveja do Terminal:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew tap homebrew/cask-versions
brew update
Nova a partir de Junho 2019
Para instalar o JDKs do AdoptOpenJDK:
brew tap adoptopenjdk/openjdk
brew cask install adoptopenjdk8
brew cask install adoptopenjdk9
brew cask install adoptopenjdk10
brew cask install adoptopenjdk11
Velho
Java 8:
brew cask install java8
Java Mais Recente:
brew cask install java
O Java8 já não está disponível no homebrew, brew install java8
não vai funcionar.
Em vez disso, utilize:
brew cask install adoptopenjdk/openjdk/adoptopenjdk8
Ver esta comissão Para mais pormenores técnicos.
Por favor, note que também pode ver questões em torno de Cask adoptopenjdk8 exists in multiple taps
. Esta é uma questão conhecida, que está sendo trabalhada, que você pode ver aqui:
Https://github.com/AdoptOpenJDK/homebrew-openjdk/issues/106
Para aqueles que não querem rever os detalhes, aqui está um resumo:
# To install JDK8
brew cask install adoptopenjdk/openjdk/adoptopenjdk8
# To be able to safely run 'brew cleanup'
brew untap adoptopenjdk/openjdk
brew untap caskroom/versions
brew cleanup
Acabei de fazer isto no meu MBP, e tive de usar
$ brew tap homebrew/cask-versions
$ brew cask install java8
Para que o java8 instale.
Instalar o barril (com o macaco 0, 9, 5 ou mais, o barril está incluído, por isso salta esta etapa):
$ brew tap caskroom/cask
$ brew tap caskroom/versions
Para instalar o java mais recente:
$ brew cask install java
Para instalar o java 8:
$ brew cask install adoptopenjdk/openjdk/adoptopenjdk8
Se quiser instalar/gerir várias versões, então poderá usar 'jenv':
Instalar e configurar o jenv:
$ brew install jenv
$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(jenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile
Adicione o java instalado ao jenv:
$ jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home
$ jenv add /Library/Java/JavaVirtualMachines/jdk1.11.0_2.jdk/Contents/Home
Para ver todos os instalados java:
$ jenv versions
O comando acima irá dar a lista de java instalado:
* system (set by /Users/lyncean/.jenv/version)
1.8
1.8.0.202-ea
oracle64-1.8.0.202-ea
Configure a versão java que deseja usar:
$ jenv global oracle64-1.6.0.39
Definir JAVA_HOME:
$ jenv enable-plugin export
Uma opção que estou a começar a gostar para executar aplicações no meu computador local é usar o Docker. Você pode simplesmente executar a sua aplicação dentro do recipiente oficial JDK - o que significa que você não tem que se preocupar em obter tudo configurado em sua máquina local (ou se preocupar em executar várias versões diferentes do JDK para diferentes aplicativos etc)
Embora isto possa não o ajudar com os seus problemas actuais de instalação, é uma solução que significa que pode side-step the minefield of issues related with trying to get Java running correctly on your dev machine!
Os benefícios são:
- não é necessário configurar qualquer versão de Java na sua máquina local (basta executar Java dentro de um recipiente que você retira do Docker Hub)
- é muito fácil mudar para diferentes versões de Java, simplesmente alterando a etiqueta no recipiente.
- as dependências do projecto estão instaladas no contentor-por isso, se fizer asneira seu config você pode simplesmente nuke o container e começar de novo.
Um exemplo muito simples:
Criar um Dockerfile
:
FROM java:8
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp
- aqui estamos a especificar o contentor Java a correr a versão 8 do SDK (
java:8
- para usar o Java 7, pode apenas especificar:java:7
) - estamos a mapear o directório local com o directório:
/usr/src/myapp
dentro do contentor
Criar um ficheiro docker-compose.yml
:
version: "2"
services:
java:
build: .
volumes:
- .:/usr/src/myapp
Agora, assume que temos este ficheiro Java.:
HelloWorld.java
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World");
}
}
Então temos a seguinte estrutura de arquivos:
.
|_ Dockerfile
|_ docker-compose.yml
|_ HelloWorld.java
Você pode fazer várias coisas Java como:
Compilar:
docker-compose run --rm java javac HelloWorld.java
- Devias ter notado que o HelloWorld.a classe aparece na sua pasta actual (isto é porque mapeámos a pasta actual para o local dentro do contentor onde o nosso código existe
Executar:
docker-compose run --rm java java HelloWorld
- Nota: A primeira vez que corres isto irá obter a imagem etc. Isto vai demorar um pouco-só acontece da primeira vez
-
docker-compose run
- executa um comando dentro do contentor -
-rm
diz ao docker para remover o contentor assim que o comando terminar de executar -
java
é o nome do serviço / contentor (a partir do nosso ficheiro de composição do 'docker') para o qual este comando irá executar - o resto da linha é o comando para correr dentro do contentor.
Aqui está um exemplo um pouco mais complexo que tem Maven e um simples aplicativo de Primavera
Declaração de exoneração de Responsabilidade:
- Ainda não experimentei isto numa IDE como a Intelij, por isso não sei bem como esse aspecto das coisas funcionaria. Embora pareça que o suporte do docker está a chegar.
Aqui está um exemplo mais complexo executando Microservices com arranque de molas, Zuul e Docker
Eu estou tendo o mesmo problema para resolver, porque eu preciso instalar JDK8 para executar o Gerenciador SDK Android (porque parece que não funciona bem com JDK9). No entanto, eu lhe digo Como eu resolver todos os problemas em um Mac (Sierra).
Primeiro, precisas decerveja com barril ejenv .
- Você pode encontrar um guia útil aqui, Guia de instalação de Cask Cask Homebrew .
Lembre-se de tocar no 'caskroom / versions' em execução no terminal:
brew tap caskroom/versions
Depois disso, instale jenv com:
- instale a versão que quiser com o barril
brew cask install java8
(oujava7
oujava
Se quiser instalar a versão mais recente, jdk9) - o último passo é configurar qual a versão a executar (e deixar o jenv gerir o seu JAVA_HOME)
jenv versions
para listar todas as versões instaladas na sua máquina e depois activar a que deseja comjenv global [JDK_NAME_OF_LIST]
brew install jenv
Tl; dr
/Library/Java/JavaVirtualMachines/
é o local correto para a JVM a ser instalada. É o que acontece há vários anos. Há muitos anos, outros locais foram usados, mas já não.
Você tem uma escolha de vários fornecedores para obter um aplicativo instalador para instalar uma implementação Java no seu Mac. Faça o Download de um instalador para executar localmente e depois descartar, como você normalmente faz para muitos aplicativos.
A tua pergunta menciona JavaFX / OpenJFX. Você pode achar conveniente use uma implementação Java que vem junto com as bibliotecas OpenJFX, tais comoLibericaFX de BellSoft ou ZuluFX da Azul Systems.
Usa o instalador, Luke
Outras respostas que sugerem o Homebrew o Gestor de pacotes parece-me um pouco extremo. Tenho a certeza que o Homebrew tem bons usos. Mas para simplesmente executar Java, ou fazer programação Java, instalar Homebrew é um passo extra desnecessário. A instalar o Homebrew (Gestor de pacotes) para o único objectivo de obter Java é como construir uma pista de aterragem para estacionar o seu carro em vez de usar a sua entrada. Se já o tens, tudo bem, usa-o. Mas sugerir Homebrew para aqueles que simplesmente precisam de Java é um mau conselho.
As pessoas que ainda não utilizam o Home-brew podem simplesmente descarregar um instalador Mac de uma fonte de confiança.
Tem várias fontes para obter uma aplicação de instalador fácil de usar para pôr Java no teu Mac. Execute o instalador no seu Mac assim como você faz para muitos outros aplicativos.
Aqui está um diagrama de fluxograma para encontrar uma fonte de Java 11, alguns dos quais também oferecem Java 8.
Descarregue um instalador de um fornecedor como o Adoptium(AdoptOpenJDK.net).
Execute o instalador.
JavaVirtualMachines
a pasta está agora correcta
Porque é que o instalador da Oracle não põe onde realmente vai? E como posso resolver este problema?
Não há problema.
A pasta /Library/Java/JavaVirtualMachines/
é a nova casa para JVM S em macOS .
Para instalar um JVM, use um instalador, discutido abaixo.
Para desinstalar, basta usar o localizador para remover um JVM dessa pasta. Ser-lhe-á pedida a senha de administrador do sistema para completar a remoção.
Java 9 & 10 & 11
Em 2010, Apple se juntou o OpenJDK projeto, juntamente com Oracle, IBM, a Red Hat, Azul, e outra Java fornecedores. Cada membro contribui com código fonte, teste e feedback para a base de código unificada OpenJDK.
A Apple contribuiu com a maior parte do seu código Mac específico para a sua JVM. Agora a Apple já não liberta a sua própria JVM específica para Mac. Você agora tem sua escolha de Fornecedor JVM, com builds vindo da base de código OpenJDK.
Encontrarás o código-fonte em: http://openjdk.java.net
Nova cadência de lançamento
Esteja ciente de que em 2017, A Oracle, o JCP e o OpenJDK adotaram um novo plano rápido de "lançamento do trem" para que as versões regulares do Java sejam entregues de forma previsível.
Leia este post no blogue Azul Systems 2018-07 para mais detalhes., eliminar a confusão de atualização Java por Simon Ritter.
Também leia Java ainda é livre.
Vendedores
Para uma lista bastante exaustiva de implementações JVM passadas e presentes, veja esta página na Wikipedia .
Aqui está uma discussão sobre alguns vendedores. Veja o fluxograma acima para mais vendedoresOracle JDK
A Oracle fornece instaladores JDK e JRE para várias plataformas, incluindo macOS.
Ao longo dos anos desde a aquisição Sun, a Oracle tem combinado as melhores partes dos dois JVM motores, HotSpot e JRocket, e se fundiu-los para o OpenJDK projeto utilizado como base para a sua própria marca de implementações de Java.
[[10]] seu novo plano de negócios, a partir de 2018, é fornecer uma implementação de marca Oracle de Java por uma taxa na produção, e sem custo para uso no desenvolvimento/teste/demo. O apoio às libertações anteriores exige um pagamento programa. Eles declararam sua intenção de seu lançamento de marca estar em paridade com o lançamento do OpenJDK. Eles até doaram seus add-ons comerciais, tais comoFlight Recorder para o projeto OpenJDK.A Oracle também lança uma compilação do OpenJDK sem suporte: http://jdk.java.net/
A Oracle produziu um objectivo especial JDK, GraalVM .
Zulu & Zing por Azul
Azul Os sistemas fornecem uma variedade de produtos JVM.
- a sua linha
Zulu
baseia-se directamente no OpenJDK e está disponível sem qualquer custo com planos de apoio pagos facultativos. - a sua Linha
Zing
oferece produtos comerciais JVM melhorados com implementações técnicas alternativas, tais como um colector de lixo especializado .
Estou actualmente a utilizar Zulu para Java 10. 0. 1 em macOS High Sierra with Intelij 2018.2 and Vaadin 8 . I baixado desta página . A propósito, eu não encontro nenhum item relacionado com Java instalado na aplicação de preferências do sistema Apple .
Adoptium
Adoptium , anteriormente conhecido comoAdoptOpenJDK , é um esforço liderado pela comunidade para construir binários da fonte OpenJDK. Muitos dos outros fornecedores de implementações Java suportam este trabalho em Adoptium.
- A escolha é tua. HotSpot ou OpenJ9 motor.
- Builds available for macOS, Linux, and Windows, and other platforms.
OpenJ9 por Eclipse
A OpenJ9 O projeto é uma outra implementação do motor JVM, uma alternativa a HotSpot .
Agora patrocinado pela Fundação Eclipse, com tecnologia e apoio doado pela IBM em 2017.Para os binários pré-construídos, remetem-no para o projecto AdoptOpenJDK acima mencionado.
Como instalar
Os instaladores fornecidos pela Oracle ou pela Azul são muito simples de operar. Basta executar o aplicativo instalador em seu Mac. Uma janela parece indicar o progresso da instalação.Quando concluído, verifique a sua instalação JVM por:
- Visitando o ... pasta para ver um item para o novo JVM.
- a rodar uma consola como o Terminal .app e tipo
java -version
para ver a marca e o número da versão do seu JVM.
Se você tiver várias versões Java na sua máquina e quiser escolhê-la dinamicamente em tempo de execução, i. e., No meu caso, eu 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/
Pode alterá-las modificando o conteúdo de /etc/profile
. Basta adicionar (ou modificar) as duas linhas seguintes no final do ficheiro:
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 gravar o ficheiro, execute por favor source /etc/profile
e ... deve funcionar. Aqui estão os resultados quando eu usar a primeira e segunda opção em conformidade:
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.
brew cask install caskroom/versions/java8
Por favor, execute os seguintes comandos e irá instalar o Java 8 no OS X:
brew tap adoptopenjdk/openjdk
brew install --cask homebrew/cask-versions/adoptopenjdk8
O SKD man permite a instalação de várias versões de Java no Mac e uma fácil troca entre estas versões. Mais informações estão disponíveis em https://sdkman.io/usage.
Por exemplo:
$ sdk list java
================================================================================
Available Java Versions
================================================================================
* 12.ea.20-open
11.0.1-zulu
> * 11.0.1-open
10.0.2-zulu
10.0.2-open
9.0.7-zulu
9.0.4-open
8.0.192-zulu
8.0.191-oracle
+ 8.0.181-oracle
7.0.181-zulu
1.0.0-rc-10-grl
1.0.0-rc-9-grl
1.0.0-rc-8-grl
================================================================================
+ - local version
* - installed
> - currently in use
================================================================================
$ sdk install java 8.0.191-oracle
$ sdk use java 8.0.191-oracle
Using java version 8.0.191-oracle in this shell.
$ java -version
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
$ sdk use java 11.0.1-open
Using java version 11.0.1-open in this shell.
$ java -version openjdk version "11.0.1" 2018-10-16
OpenJDK Runtime Environment 18.9 (build 11.0.1+13)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.1+13, mixed mode)
```
Eu tenho aplicações que usam tanto Java 7 quanto 8 e têm que ir e voltar o tempo todo.
Uso Este guião escrito por Johan:
Http://www.jayway.com/2014/01/15/how-to-switch-jdk-version-on-mac-os-x-maverick/
Pode agora configurá-lo no arranque ou ligar para o programa depois.
Instale o JDK para o Mac.
Java 7
Http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
Java 8
Http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Recomendação actualizada!!:
Utilize jenv https://www.jenv.be E homebrew.
Então é só jenv global oracle6401.6.0.39
e o seu conjunto.
Execute estes comandos no mac High Sierra
brew update
brew tap caskroom/versions
brew cask install java8
E verifique com o comando
java -version
Usando brew
brew install Caskroom/cask/java
A melhor maneira é usar o Gestor de pacotes Brew, mas o comando
brew cask install java8
Falha com o erro:
Error: No available formula with the name "java8"
Por isso, utilize
brew cask install caskroom/versions/java8
Como é que encontrei "caskroom / versions / java8": usando o comando de pesquisa do brew:
brew cask search java8
Se você está usando NÃO para uso pessoal, você pode querer usar OpenJDK em vez disso para evitar qualquer processo judicial potencial da Oracle.
brew cask install adoptopenjdk8
Se você está em um Mac, então Homebrew é a maneira de instalar coisas.
Parece que a versão 8 já não é a mais recente, por isso não está disponível usando o padrão brew cask install java
.
brew install homebrew/cask-versions/
Se isto falhar, tenta o próximo directamente.
brew install homebrew/cask-versions/adoptopenjdk8
Teste com brew cask list
ou java -version
O mais simples é obter o ficheiro dmg do seguinte site e instalar por duplo-click
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Procura por JVM disponíveis na pasta pessoal
ls -al /Library/Java/JavaVirtualMachines
E actualiza o .bash_ Profile com a versão relevante
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_XXX.jdk./Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
E finalmente
source ~/.bash_profile
Instalar com o Homebrew
A versão de Java disponível no Cask Homebrew anterior a 3 de outubro de 2018 era, de facto, a JVM Oracle. Agora, no entanto, ele agora foi atualizado para OpenJDK. Certifique-se de atualizar o Homebrew e então você verá a versão mais recente disponível para instalar.
1. instalar o Homebrew se ainda não o tiver feito. Certifique-se de que é atualizado:
brew update
2. Adicione a torneira dos barris, se ainda não o fez (ou se não está a ver mais velho Versões Java com step #3):
brew tap homebrew/cask-versions
3. e para as versões AdoptOpenJDK, adicione essa torneira:
brew tap adoptopenjdk/openjdk
Estes barris mudam as suas versões Java muitas vezes, e pode haver outras torneiras por aí com versões Java adicionais.
4. Procurar por versões instaláveis:
brew search java
Ou para as versões AdoptOpenJDK:
brew search jdk
5. Verifique os detalhes da versão que será instalada:
brew cask info java
Ou para a AdoptOpenJDK version:
brew cask info adoptopenjdk
6. Instale uma versão específica do JDK, como java11, adoptopenjdk8, ou apenas java ou adoptopenjdk para o atual. Por exemplo:
**brew cask install java**
**brew cask install java8**
**brew cask install java11**
Você pode usar o caminho totalmente qualificado para versões mais antigas também:
brew cask install homebrew/cask-versions/java11
Tenta:
brew cask install java 8
Dará o resultado abaixo
8tracksradiohelper adoptopenjdk8 amitv87-pip
corretto8 icons8 vmware-fusion8
x48 zulu8
Depois digite:
brew cask install adoptopenjdk8
- - - - java 8 será instalado no Mac.
Os comandos de cask Brew foram desactivados em 2020-12-21 com o lançamento do Homebrew 2.7.0.
Use os comandos abaixo para instalar o JDK
Brew install --cask adoptopenjdk/openjdk / adoptopenjdk8
Podes tentar isto:
$ brew search jdk
$ brew cask install homebrew/cask-versions/adoptopenjdk8
$ /usr/libexec/java_home
A maneira mais fácil
1) brew cask install java
2) java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
P. S-Cask é uma extensão para o Homebrew que se destina a gerir binários Mac grandes e aplicações gráficas, mas usando a interface Homebrew. Ver também esta resposta na Apple StackExchange.
Felizmente no 2021 só tens de usar [jenv
][1]
brew install jenv openjdk@8
jenv add /usr/local/opt/openjdk@8
E depois adicionar à ideia do Intelij um novo SDK com o seguinte caminho:
~/.jenv/versions/8/libexec/openjdk.jdk/Contents/Home/
Eu também vou sugerir para adicionar no seu .zshrc
(ou .bashrc
)
export PATH="$HOME/.jenv/bin:$PATH"
eval "$(jenv init -)"
export JAVA_HOME="$HOME/.jenv/versions/`jenv version-name`"
Para a versão mais recente dos utilizadores do Intellij IDEA, existe uma opção para transferir o JDK directamente do IDE: https://www.jetbrains.com/help/idea/sdk.html#jdk-from-ide
Para 2021 este funcionou para mim
brew tap homebrew/cask-versions
brew install --cask adoptopenjdk8
A partir de 3 de Maio de 2020, este site tem um link para download de jre8u251: https://java.com/en/download/mac_download.jsp
Abaixo dos degraus funcionou comigo.
1) desinstalar todos os jdks
Na janela do Terminal copiar e colar o comando abaixo:
sudo rm -fr /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin
sudo rm -fr /Library/PreferencePanes/JavaControlPanel.prefpane
2) Instalar o APPLE JDK.
Https://support.apple.com/kb/DL1572?locale=en_US
3) Descarregue o último JDK da Oracle e instale-o, para mim foi JDK 1.82
Http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html
É tudo o que vai funcionar como um amuleto.