2017年2月6日

OpenJDK

Oracle JDK 長久以來並沒有被追討授權費用的問題,但因為 JDK 本來就是以 BCL 授權,並不是整個 JDK 都是免費使用的,再加上Oracle 開始追討 Java 授權費,企業客戶頭痛,所以要開始注意這個問題。Oracle 取締未經適當授權的 Java 用戶 提供了如何安全地使用 Oracle JDK 的一些 hint,不過最根本的方法就是換成 OpenJDK。

OpenJDK 是以 GPL with Classpath Exception 授權,classpath exception 就是可以在 proprietary 軟體中使用 OpenJDK 的意思。

OpenJDK 8 已經跟 Oracle JDK 沒有什麼差異,在 Linux Server 中,都已經可以很快速就將 JDK 轉換到 OpenJDK 上面,不過 windows 跟 MacOS 就麻煩了一些,但基本上後面這兩個 OS 都是開發環境,只是下載使用,沒有散佈,繼續用 Oracle JDK 應該也可以。

CentOS

ref: CentOS7 使用yum命令安装Java SDK

$ yum search java | grep -i --color JDK

java-1.8.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.8.0-openjdk-debug.x86_64 : OpenJDK Runtime Environment with full debug on
java-1.8.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.8.0-openjdk-demo-debug.x86_64 : OpenJDK Demos with full debug on
java-1.8.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.8.0-openjdk-devel-debug.x86_64 : OpenJDK Development Environment with
java-1.8.0-openjdk-headless.x86_64 : OpenJDK Runtime Environment
java-1.8.0-openjdk-headless-debug.x86_64 : OpenJDK Runtime Environment with full
java-1.8.0-openjdk-javadoc.noarch : OpenJDK API Documentation
java-1.8.0-openjdk-javadoc-debug.noarch : OpenJDK API Documentation for packages
java-1.8.0-openjdk-src.x86_64 : OpenJDK Source Bundle
java-1.8.0-openjdk-src-debug.x86_64 : OpenJDK Source Bundle for packages with

openjdk 的安裝路徑 /usr/lib/jvm/

yum install java-1.8.0-openjdk  java-1.8.0-openjdk-devel

以 alternatives 調整執行檔的目標

alternatives --config java
alternatives --config javac
alternatives --config javadoc
alternatives --config javah
alternatives --config javap

設定環境變數

vi /etc/profile

export JAVA_HOME=/usr/lib/jvm/java-openjdk
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

Debian

ref: How to download and install prebuilt OpenJDK packages

apt-get update
apt-get install openjdk-8-jdk

openjdk8 的路徑是 /usr/lib/jvm/java-8-openjdk-amd64

update-alternatives --display java
update-alternatives --display javac
update-alternatives --display javadoc
update-alternatives --display javah
update-alternatives --display javap

java -version

設定環境變數

vi /etc/profile

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

openjdk for windows

Redhat Develper 提供了 windows 的 openjdk binary installer OpenJDK now available for Windows

openjdk for macos

build OpenJDKs at home on Linux and OSX

How to build and package OpenJDK 8 on OSX

https://www.zhihu.com/question/40816585 安装Homebrew然后在终端sudo brew install openjdk