เครื่อง 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
...
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
$ 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)
ไม่มีความคิดเห็น :
แสดงความคิดเห็น