Oracle Java
ダウンロードURL
なお、Java SE 8では、同じアップデートで、複数のバージョンが提供されていました。 (8u181からは1つのようです)
- 数字が小さい方: セキュリティアップデートのみ
- 数字が大きい方: セキュリティアップデート + バグフィックス
Java SE 8u162 is a patch-set update, including all of 8u161 plus additional bug fixes (described in the release notes).
通常は数字の大きい方を入れて問題ないと思います。
ダウンロード手順
- ダウンロードページを開く
- 入れたいバージョンを選択
- ライセンスを読んで、Accept License Agreementを選択
- ボタンを押さないと、リンクが有効になりません。
- プラットフォームを選択して、横のリンクをクリックしてダウンロード
- macOS
- 64ビット専用です。
- Windows
- JDK 8までは32ビット(x86)と64ビット(x64)があります。JDK 9からは64ビット 専用です。
- Linux
- JDK 8までは32ビット(x86)と64ビット(x64)があります。JDK 9からは64ビット 専用です。
- RPM版と、tar版があります。
- macOS
インストール手順
こちらにまとまっているようです。
まだ試してませんが・・・
- macOS
*.dmg
を開く- その先適当に進める(迷うことはないと思います)
macOSの場合、インストール先は/Library/Java/JavaVirtualMachines/
になります。
OpenJDK
OpenJDK 10のインストール方法(macOS)
- JDK 10 GA Releaseを開く
- ダウンロード
- 展開
/Library/Java/JavaVirtualMachines/
にmv
これでなぜかjava -version
の内容も10になりました。
アンインストール
macOS
/Library/Java/JavaVirtualMachines 以下にあるので、削除したいものを
sudo rm -rf
で消してください。
インストール時に入れたい設定(JDK 8)
乱数ソースの変更
$JAVA_HOME/jre/lib/security/java.security
#securerandom.source=file:/dev/random
securerandom.source=file:/dev/urandom
なお、記事によっては
-Djava.security.egd=file:/dev/./urandom
を指定するとなっている。
これはJDKを入れ替えてもそのまま対応できる利点はあるが、
おまじないになってしまっている。
-Djava.security.egd=file:/dev/./urandom
であって、
-Djava.security.egd=file:/dev/urandom
だとダメなのはおそらく互換性のため。
JDK-4705093 : Use /dev/urandom rather than /dev/random if it exists.
SecureRandom.getInstance(“SHA1PRNG”) and do not specify a seed, OR new SecureRandom() but have specified an alternate java.security.egd besides “file:/dev/urandom”, it will use the SHA1PRNG which calls into /dev/random and may potentially block.
OpenJDK 1.8.0_151_b12で試したところ、 -Djava.security.egd=file:/dev/urandomでも問題なかった。 どのバージョンでどれを指定すればいいか分からない。。。
なお、/dev/urandom を使用した場合は、暗号論的擬似乱数を使用するため、 真の乱数ではないがブロックされない。 通常はこちらを使用して問題ないと判断される(→乱数)。
DNSキャッシュがリフレッシュされない問題の回避
この設定は未検証。
JavaSE(JDK)をインストールしたら必ずやっておきたい設定
$JAVA_HOME/jre/lib/security/java.security
#networkaddress.cache.ttl=-1
networkaddress.cache.ttl=600
networkaddress.cache.negative.ttl=10
マニュアル
- Java
- openjdk: まだありません。