วันพฤหัสบดี, พฤษภาคม 14, 2558

OSX: เปลี่ยน JDK version ง่ายด้วยคำสั่งเดียว; Switch JDK version easily in one command.


    เครื่อง macbook ของผมติดตั้ง Java (JDK) เอาไว้ 3 version 1.6, 1.7 และ 1.8 โปรแกรมที่พัฒนาตัวไหนเก่าหน่อยก็ต้องใช้ JDK 6 ถ้าใหม่ขึ้นมาอีกหน่อยก็จะใช้ JDK 7 สำหรับ  project ที่จะทำต่อจากนี้ก็จะเริ่มที่ JDK 8 เลย เพราะ JDK 6, JDK 7 มัน end of life ไปแล้ว, Oracle เลิก support แล้ว

ถ้าอยากรู้ว่าตอนนี้ macbook เราติดตั้ง JDK อะไรไว้บ้าง ใช้คำสั่งนี้

$ /usr/libexec/java_home -V


Matching Java Virtual Machines (5):

1.8.0_45, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home

1.8.0_31, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home

1.7.0_25, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home

1.6.0_65-b14-462, x86_64: "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

1.6.0_65-b14-462, i386: "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home


เราสามารถให้มันแสดง JAVA_HOME ของแต่ละ version ออกมาได้ด้วยคำสั่งแบบนี้ 

$ /usr/libexec/java_home -v 1.6

/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

เปลี่ยนเลข 1.6 เป็น version ที่ต้องการ ในกรณีในเครื่องผม เลขที่ใส่ได้ก็จะมี 1.6 1.7 หรือ 1.8

จากคำสั่งแบบนี้ ทำให้เราสามารถเซ็ต variable JAVA_HOME ให้กับแต่ละ project ที่เราใช้ได้
...
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)
...

แล้วก็พบว่า ใน macbook แค่เราเปลี่ยน variable JAVA_HOME เวลาเรา execute java มันก็จะเป็น version ตาม JAVA_HOME เลย

เปลี่ยน JDK version ง่ายด้วยคำสั่งเดียว

ถ้าอยากทำคำสั่งให้เปลี่ยน JDK version ง่ายๆ ก็ใช้วิธีกำหนด alias เอาไว้
จะสร้างไฟล์ ~/.profile หรือ ~/.zshrc ถ้าคุณใช้ ohmyzsh เหมือนผม

ใส่ 3 บรรทัดนี้เข้าไป
...
alias jdk6="export JAVA_HOME=\$(/usr/libexec/java_home -v 1.6);echo '... Using JDK 6'"
alias jdk7="export JAVA_HOME=\$(/usr/libexec/java_home -v 1.7);echo '... Using JDK 7'"
alias jdk8="export JAVA_HOME=\$(/usr/libexec/java_home -v 1.8);echo '... Using JDK 8'"
...

พิมพ์คำสั่งนี้ เพื่อเริ่มใช้งาน alias ที่เพิ่งเพิ่มเข้าไปได้เลย

$ . ~/.zshrc

หรือ 

$ . ~/.profile

เวลาต้องการเปลี่ยน JDK version ก็แค่ execute command jdk6, jdk7 หรือ jdk8

$ jdk8
... Using JDK 8
$ java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

$ jdk7
... Using JDK 7
$ java -version
java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b15)
Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)

$ jdk6
... Using JDK 6
$ java -version
java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-462, mixed mode)

... Happy coding ^ ^

ไม่มีความคิดเห็น :