webdevqa.jp.net

MacにJava 8をインストールする方法

Java 8を必要とする最新のJavaFXでプログラミングをしたいのですが、IntelliJ 13 CEとMac OS X 9 Mavericksを使用しています。私はOracleのJava 8インストーラを走らせました、そして、ファイルはそれらが最終的になったように見えます 

/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk

しかし、以前のバージョンは 

/System/Library/Java/JavaFrameworks/jdk1.6....

最新のインストーラがなぜこれを/Libraryではなく/System/Libraryにしているのか(そしてその違いはなんであるのか)わからない。しかし/usr/libexec/Java_homeは1.8を見つけられないので、現在のJavaバージョンを設定する方法について私が見つけたすべての投稿は機能しません。 1.8が/System/Library...パスにあるように見せるためにシンボリックリンクを追加しようとしましたが、役に立ちません。 /usr/libexec/Java_home -Vはまだ古いJava 1.6だけをリストしています。

皮肉なことに、システム環境設定の下にある「Java」コントロールパネルにはJava 1.8しか表示されません。

オラクルのインストーラがどうしてそれを現実のものとしないのでしょうか。そして、どうすればこの問題を回避できますか?

618
user3763100

MacにJavaを正しくインストールするためにOracleに頼らないでください。

自作 を使用します。これで最新のjdkがインストールされます。

brew cask install Java

Mac上で複数のバージョンのJavaを管理したい場合は、 jenv の使用を検討してください。

アップデート:Java 8をこのようにインストールしたいのであれば、Java 8はもはや最新バージョンではありません。 

brew tap caskroom/versions
brew cask install Java8

すべての古いバージョンのJavaのリストを取得するには、brew tap caskroom/versionsを使用してからbrew search Javaを使用します。

brew cask を使用します。そうしないと、お使いのMacにJavaが正しくインストールされない可能性があるOracle GUIインストーラを使用することになります。 (GUIアプリケーションをインストールするにはbrew cask install APPを使用し、brew install APPを使用してください。)JavaはGUIアプリケーションではありません。それはshould "cask"を必要としませんが、少なくともOracleは一貫しています。

1438
l3x

El Capitan Sierra および High Sierra

まずターミナルから brew をインストールして更新します。

/usr/bin/Ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

brew tap caskroom/versions

brew update

Java 8:

brew cask install Java8

Java Latest:

brew cask install Java
397
kavehmb

私はちょうど私のMBPでこれをした、そして使わなければならなかった

$ brew tap caskroom/versions
$ brew cask install Java8

java8をインストールするために。

109
Jain Waldrip

ローカルコンピューターでアプリケーションを実行するために私が本当に好きになり始めているオプションは、Dockerを使用することです。公式のJDKコンテナ内でアプリケーションを実行するだけです。つまり、ローカルマシンですべてをセットアップすることを心配する必要はありません(または、異なるアプリなどで複数の異なるバージョンのJDKを実行することを心配する必要はありません)

これは現在のインストールの問題には役立たないかもしれませんが、開発マシンでJavaを正しく実行しようとすることに関連する問題の地雷原を回避できることを意味するソリューションです!

利点は次のとおりです:

  1. ローカルマシンでJavaのバージョンをセットアップする必要はありません(Docker Hubからプルするコンテナー内でJavaを実行するだけです)
  2. コンテナのタグを変更するだけで、Javaの異なるバージョンに簡単に切り替えることができます。
  3. プロジェクトの依存関係はコンテナ内にインストールされます-そのため、設定を台無しにした場合、コンテナを単純に破棄して再起動できます。

非常に簡単な例:

Dockerfileを作成します。

FROM Java:8
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp
  • ここでは、バージョン8のSDKを実行するJavaコンテナを指定しています(Java:8-Java 7を使用するには、単にJava:7と指定できます)
  • ローカルディレクトリを、コンテナ内の/usr/src/myappディレクトリにマッピングしています。

docker-compose.ymlファイルを作成します。

version: "2"

services:
  Java:
    build: .
    volumes:
      - .:/usr/src/myapp

ここで、次のJavaファイルがあると仮定します。

HelloWorld.Java

public class HelloWorld {
    public static void main(String[] args) {        
        System.out.println("Hello, World");
    }
}

したがって、次のファイル構造があります。

.
|_ Dockerfile
|_ docker-compose.yml
|_ HelloWorld.Java

次のようなさまざまなJavaを実行できます。

コンパイル:

docker-compose run --rm Java javac HelloWorld.Java 
  • HelloWorld.classが現在のディレクトリに表示されることに注意してください(これは、現在のディレクトリを、コードが存在するコンテナ内の場所にマッピングしたためです。

run:

docker-compose run --rm Java java HelloWorld 
  • 注:これを初めて実行すると、画像などを取得します。これにはしばらく時間がかかります-最初にのみ発生します
  • docker-compose run-コンテナ内からコマンドを実行します
  • -rmは、コマンドの実行が終了したらコンテナーを削除するようにdockerに指示します
  • Javaは、このコマンドが実行されるサービス/コンテナ(docker-composeファイルから)の名前です
  • 行の残りは、コンテナ内で実行するコマンドです。

これは、ローカルセットアップを完全に混乱させることなく、さまざまなアプリに対してJavaのさまざまなバージョンを実行するのに非常に便利な方法です。

MavenとシンプルなSpringアプリ を持つ、もう少し複雑な例です。

免責事項:

58
toast38coza

私は、Android SDK Managerを実行するためにJDK 8をインストールする必要があるので(JDK 9ではうまく動作しないようだから)、解決すべき同じ問題を抱えています。 Mac(Sierra)では.

まず、 brew with caskと jenv が必要です。

  1. あなたはここで役に立つガイドを見つけることができます、 Homebrew Caskインストールガイド 。ターミナルで走っている 'caskroom/versions'をタップするのを忘れないでください: brew tap caskroom/versions
  2. その後、jenvを次のようにインストールします。 brew install jenv
  3. Cask brew cask install Java8(最新のバージョンをインストールしたい場合はJava7またはJava)を使用して、必要なバージョンをインストールします。
  4. 最後のステップは、実行するバージョンを設定すること(そしてjenvにあなたのJava_HOMEを管理させること) jenv versionsにあなたのマシンにインストールされているすべてのバージョンをリストアップし、そしてjenv global [JDK_NAME_OF_LIST]であなたが欲しいものを起動

このGithub Gist brew-Java-and-jenv.md 、このブログ Macに複数のJDKをインストール 、および Jenv Webサイト で、その他の役立つ情報を見つけることができます。

23

Java8は自作では利用できなくなりました。brew install Java8は機能しません。

代わりに、

brew cask install adoptopenjdk/openjdk/adoptopenjdk8

技術的な詳細については このコミット を参照してください。

Cask adoptopenjdk8 exists in multiple tapsに関して問題があるかもしれません。これは既知の問題であり、現在取り組んでいます。こちらからご覧いただけます。

https://github.com/AdoptOpenJDK/homebrew-openjdk/issues/106

詳細に目を通したくない人のために、ここに要約があります。

# 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
21
Dave Kerr

brew cask install caskroom /バージョン/ Java8

14
Arun

インストーラー、Lukeを使用する

MacにJavaを配置する使いやすいインストーラーアプリを入手するための複数のソースがあります。 Brewまたは他のアプローチを示唆する他の回答は、私には少し極端に思えます。信頼できるソースからMacインストーラーをダウンロードして実行するだけです。

以下はJava 11のソースを見つけるためのフローチャート図です。そのうちのいくつかはJava 8も提供しています。

flowchart for choosing a source for Java 11.

JavaVirtualMachinesフォルダーが正しくなりました

なぜOracleのインストーラーは、実際の場所に配置しないのですか?そして、この問題をどのように回避できますか?

問題ありません。

フォルダー/Library/Java/JavaVirtualMachines/JVM s on macOS の新しいホームです。

JVMをインストールするには、以下で説明するインストーラーを使用します。

アンインストールするには、単にFinderを使用してそのフォルダーからJVMを削除します。削除を完了するために、システム管理者パスワードの入力を求められます。


Java 9および10および11

2010年に戻ると、 Appleが参加OpenJDKプロジェクト 、および OracleIBMRed HatAzul 、およびその他のJavaベンダー。各メンバーは、統一されたOpenJDKコードベースにソースコード、テスト、フィードバックを提供します。

Appleは、JVM用のMac固有のコードのほとんどを提供しました。 Appleは、Mac固有のJVMをリリースしなくなりました。これで、OpenJDKコードベースからビルドされたJVMサプライヤを選択できます。

ソースコードは次の場所にあります。 http://openjdk.Java.net

新しいリリースのリズム

2017年に、Oracle、JCP、およびOpenJDKは、予測可能な方法で配信されるJavaの定期的にスケジュールされるバージョンに対して 新しい高速「リリーストレイン」計画 を採用していることに注意してください。

詳細については、2018-07 Azul Systemsのブログ投稿をご覧ください。 Emitting Java Update Confusion by Simon Ritter .

Java is Still Free も読んでください。

ベンダー

過去および現在のJVM実装のかなり網羅的なリストについては、 Wikipediaのこのページ を参照してください。

私が知っている3つの現在アクティブなソースを以下に示します。

Oracle JVM

オラクルは、macOSを含む複数のプラットフォーム用のJDKおよびJREインストーラを提供しています。

Sunの買収以来、Oracleは2つのJVMエンジンの最高の部分 HotSpotJRocket 、およびそれらを OpenJDK にマージし、独自のブランドのJava実装の基礎として使用しました。

2018年時点での彼らの新しいビジネスプランは、オラクルブランドのJavaの実装を実稼働料金で提供し、開発/テスト/デモでの使用は無料です。以前のリリースのサポートには、有料のサポートプログラムが必要です。彼らは、ブランドリリースがOpenJDKリリースと機能的に同等になることを宣言しました。彼らはOpenJDKプロジェクトにFlight Recorderなどの商用アドオンも寄付しました。

ZuluZingby Azul

Azul Systems は、さまざまなJVM製品を提供します。

  • Zulu行はOpenJDKに直接基づいており、オプションの有料サポートプランで無料で利用できます。
  • Zing行は、専門の garbage-collector などの代替技術実装で強化された商用JVM製品を提供します。

どちらの行もmacOSのインストーラーを提供します。

現在、macOS上のJava 10.0.1にZuluを使用しています High Sierra with IntelliJ 2018.2および Vaadin 8 。 I このページからダウンロード 。ちなみに、私はnotAppleSystem PreferencesアプリにインストールされているJava関連のアイテムを見つけません。

AdoptOpenJDK.net

AdoptOpenJDK は、OpenJDKソースのバイナリをビルドするコミュニティ主導の取り組みです。彼らは、コミュニティのメンバーから寄付されたように、時間の経過とともに更新を提供するつもりです。

  • HotSpot または OpenJ9 エンジンのいずれかを選択します。
  • MacOS、Linux、およびWindowsで利用可能なビルド。

OpenJ9Eclipseによる

OpenJ9 プロジェクトは、JVMエンジンの別の実装であり、HotSpotの代替です。

現在、Eclipse Foundationのスポンサーであり、2017年にIBMから技術と支援が寄贈されました。

ビルド済みのバイナリについては、上記のAdoptOpenJDKプロジェクトを参照します。


インストールする方法

OracleまたはAzulが提供するインストーラーは、どちらも操作が非常に簡単です。 Macでインストーラーアプリを実行するだけです。インストールの進行状況を示すウィンドウが表示されます。

完了したら、次の方法でJVMインストールを確認します。

  • /Library/Java/JavaVirtualMachines/フォルダーにアクセスして、新しいJVMのアイテムを確認します。
  • Terminal.appなどのコンソールを実行し、Java -versionと入力して、JVMのブランドとバージョン番号を確認します。

成功を確認した後、Finderで.dmgイメージのマウントを解除します。次に、ダウンロードした.dmgファイルをゴミ箱に移動します。

12
Basil Bourque

私はJava 7と8の両方を使用するアプリケーションを持っていて、常に行ったり来たりしなければなりません。

私はJohanによって書かれたこのスクリプトを使います。

http://www.jayway.com/2014/01/15/how-to-switch-jdk-version-on-mac-os-x-maverick/ /

起動時に設定するか、または後でスクリプトを呼び出すことができます。
JDK for 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

11
Nathan Dunn

あなたのマシンに複数のJavaバージョンがあり、実行時にそれを動的に選択したい場合、つまり私の場合は、2つのバージョンがあります

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/

/etc/profileの内容を変更することでそれらを変更できます。ファイルの最後に次の2行を追加(または変更)するだけです。

export Java_HOME=YOUR_Java_PATH/Contents/Home
export PATH=$Java_HOME/bin:$PATH

私の場合は、使用したい場合は次のようになります。

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

ファイルを保存した後、source /etc/profileを実行してください。これは私がそれに応じて最初と2番目のオプションを使用したときの結果です。

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)

Javaフォルダが別の場所にある場合も、プロセスは似ています。

10
nxhoaf

これらのコマンドをmacで実行してください High Sierra

brew update
brew tap caskroom/versions
brew cask install Java8

コマンドで確認

Java -version
9
TLbiz

最善の方法はBrewパッケージマネージャを使用することですが、コマンド

 brew cask install Java8

エラーで失敗します。

Error: No available formula with the name "Java8" 

だから使う

brew cask install caskroom/versions/Java8

どのように私は "caskroom/versions/Java8"を見つけましたか:brew searchコマンドを使って:

brew cask search Java8
7
Navjot Bhardwaj

醸造を使用する

brew install Caskroom/cask/Java
7
Santhosh

仮定:Macマシンとあなたはすでに自作をインストールしました。

キャスクをインストールします。

$ brew tap caskroom/cask
$ brew tap caskroom/versions

最新のJavaをインストールするには

$ brew cask install Java

Java 8をインストールするには

$ brew cask install Java8

複数のバージョンをインストール/管理したい場合は、 'jenv'を使用できます。

Jenvをインストールして設定します。

$ brew install jenv
$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(jenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile

インストールしたJavaを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

インストールされているすべてのJavaを見るには:

$ jenv versions

上記のコマンドは、インストールされているJavaのリストを表示します。

* system (set by /Users/lyncean/.jenv/version)
1.8
1.8.0.202-ea
Oracle64-1.8.0.202-ea

使用するJavaのバージョンを設定します。

$ jenv global Oracle64-1.6.0.39

Java_HOMEを設定するには

$ jenv enable-plugin export
6
Lyncean Patel

最も簡単な方法 -

1) brew cask install Java (No need to install cask separately it comes with brew)

2) Java -version

Java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)

P.S - ブリューキャスクとは何ですか? Homebrew-CaskはHomebrewを拡張し、Homebrewを使用してアプリケーションをインストールした後に、追加コマンド - “インストールするにはこのアイコンをドラッグします…”を実行するという面倒を解決します。

3
sapy

まだSDK man( https://sdkman.io/ /)について言及していないようです。

SKD manは、Macに複数のバージョンのJavaをインストールし、それらのバージョンを簡単に切り替えることができます。より詳しい情報は https://sdkman.io/usage にあります。

例えば:

$ 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)
                                                                                                                                                                                                         ```


3
stderr

最も簡単な方法は、以下のサイトからdmgファイルをダウンロードし、ダブルクリックでインストールすることです。

http://www.Oracle.com/technetwork/Java/javase/downloads/jdk8-downloads-2133151.html

ホームディレクトリから利用可能なJVMを探す

ls -al /Library/Java/JavaVirtualMachines

そして関連するバージョンで.bash_profileを更新します

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

そして最後に 

source ~/.bash_profile
2
vimal krishna

個人的な使用のためにNOTを使用している場合は、Oracleからの訴訟を回避するためにOpenJDKを使用することをお勧めします。

brew cask install adoptopenjdk8
2
Edmund Lee

試してください:

brew cask install Java 8、、それは以下の結果を与えるでしょう

8トラックラジオヘルパーの採用topenjdk8 amitv87-pip corretto8 icons8 vmware-fusion8 x48 zulu8

次に入力してください:brew cask install adaptopenjdk8 ---- MacにはJava 8がインストールされます。

0
arg

私は、バージョンを変更するのが非常に簡単な(一時的かつ恒久的な)SDKマンを使うことを勧めます、そしてそれは他のSDKも提供します。私はSDKのmanを1年以上使用しています。

https://sdkman.io/

0
saif ali