จะตั้งค่าตัวแปรสภาพแวดล้อม JAVA_HOME บน Mac OS X 10.9 ได้อย่างไร?


135

ฉันเพิ่งซื้อ MacBook Pro ใหม่เอี่ยม

นี่เป็น MAC เครื่องแรกของฉันและฉันก็ยังคงพยายามที่จะนำทางไปรอบ ๆ

อย่างไรก็ตามฉันยังใหม่กับ Java และฉันได้ฝึกฝนบนพีซี Windows ของฉันก่อนที่มันจะตายอย่างถาวร

ตอนนี้ฉันใช้ MAC นี้ฉันติดตั้ง JDK ของฉันและตอนนี้ฉันต้องตั้งค่าJAVA_HOMEตัวแปรสภาพแวดล้อม

ฉันไม่รู้จะทำอย่างไร

ฉันลองทำตามคำแนะนำเหล่านี้แล้ว แต่ก็ไม่ได้ไกลมากนัก

  1. Mkyong.com: วิธีตั้งค่าตัวแปร JAVA_HOME ใน Mac OSX

  2. YouTube: วิธีตั้งค่าตัวแปรสภาพแวดล้อมบน mac, linux, solaris, rhel

  3. YouTube: วิธีตั้งค่าตัวแปรสภาพแวดล้อมใน Mac

ฉันสามารถค้นหาเทอร์มินัลได้และฉันคิดว่าฉันสร้างไฟล์หลายไฟล์ ฉันได้รับข้อความเช่นนี้:


(1) โปรแกรมอื่นอาจกำลังแก้ไขไฟล์เดียวกัน ในกรณีนี้โปรดระวังอย่าลงเอยด้วยสองอินสแตนซ์ที่แตกต่างกันของไฟล์เดียวกันเมื่อทำการเปลี่ยนแปลง ออกหรือดำเนินการต่อด้วยความระมัดระวัง


(2) เซสชันแก้ไขสำหรับไฟล์นี้ขัดข้อง หากเป็นกรณีนี้ให้ใช้ ": recover" หรือ "vim -r /Users/Erwin/.bash_profile" เพื่อกู้คืนการเปลี่ยนแปลง (ดู ": help recovery") หากคุณได้ดำเนินการแล้วให้ลบไฟล์ swap "/Users/Erwin/.bash_profile.sw p" เพื่อหลีกเลี่ยงข้อความนี้

ใครช่วยบอกวิธีตั้งค่า Java ในสภาพแวดล้อม Mac OSX ทีละขั้นตอนได้ไหม


สำเนาของ: superuser.com/questions/240100/…
Frank V


อธิบายสั้น ๆ : stackoverflow.com/a/59151321/5788247
Shomu

คำตอบ:


328

สิ่งที่คุณต้องทำคือ:

echo export "JAVA_HOME=\$(/usr/libexec/java_home)" >> ~/.bash_profile

และรีสตาร์ทเชลล์ของคุณ

หากคุณติดตั้ง JDK หลายเวอร์ชันและต้องการให้เป็นเวอร์ชันเฉพาะคุณสามารถใช้-vแฟล็กเพื่อjava_homeชอบได้:

echo export "JAVA_HOME=\$(/usr/libexec/java_home -v 1.7)" >> ~/.bash_profile

1
เมื่อคุณพูดว่า "เชลล์" หมายความว่าฉันปิดหน้าต่างเทอร์มินัลแล้วเปิดใหม่ใช่ไหม นอกจากนี้สิ่งนี้จะเพิ่มตัวแปรสภาพแวดล้อมสำหรับ jdk ของฉันอย่างถาวรหรือไม่
islander_zero

1
ใช่นั่นคือสิ่งที่ฉันหมายถึง และใช่นั่นจะเพิ่มตัวแปรสำหรับเชลล์ล็อกอินทั้งหมดสำหรับผู้ใช้ของคุณ (กล่าวคือเกือบทุกสถานการณ์ที่คุณต้องการ)
Adrian Petrescu

13
ฉันคิดว่าแทนที่จะรีสตาร์ทเทอร์มินัลถ้าคุณทำsource ~/.bash_profileมันจะได้ผลใช่ไหม?
Shobhit Puri

2
@ShobhitPuri Yup ฉันแค่อยากจะให้มันง่ายสำหรับผู้ถาม
Adrian Petrescu

4
echo export "JAVA_HOME=\$(/usr/libexec/java_home -v 1.7)" >> ~/.bash_profileหากคุณต้องการรุ่นเฉพาะ 1.7 ในกรณีนี้
sebastian

26

ฉันทำได้โดยการใส่

export JAVA_HOME=`/usr/libexec/java_home`

(backtics) ใน. bashrc ของฉัน ดูความคิดเห็นของฉันเกี่ยวกับคำตอบของเอเดรียน


15

ใน Mac OSX 10.5 หรือใหม่กว่าแอปเปิ้ลแนะนำการตั้งค่า$JAVA_HOME variable to /usr/libexec/java_homeการส่งออกเพียงหรือ$JAVA_HOME in file ~/. bash_profile~/.profile

เปิดเทอร์มินัลและเรียกใช้คำสั่งด้านล่าง

$ vim .bash_profile

export JAVA_HOME=$(/usr/libexec/java_home)

บันทึกและออกจาก vim editor จากนั้นรันคำสั่ง source บน. bash_profile

$ source .bash_profile

$ echo $JAVA_HOME

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

11

ตั้งค่าตัวแปรสภาพแวดล้อม$ JAVA_HOMEบน Mac OSX รุ่นล่าสุดหรือเก่ากว่า

ดาวน์โหลดและติดตั้งติดตั้งJDK

  1. ขั้นแรกให้ติดตั้ง JDK
  2. เปิดเทอร์มินัลตรวจสอบเวอร์ชัน java

$ java -version

ตั้งค่าตัวแปรสภาพแวดล้อม JAVA_HOME

  1. เปิดไฟล์. zprofile

$ open -t .zprofile

หรือสร้าง. ไฟล์zprofile

$ open -t .zprofile

  1. เขียนใน. zprofile

export JAVA_HOME=$(/usr/libexec/java_home)

บันทึก .zprofileและใกล้ไฟล์ทุบตีและแล้วเขียนใน terminal สำหรับการทำงานอย่างสมบูรณ์แบบ

$ source .zprofile

ตั้งค่าการทดสอบในเทอร์มินัล

$ echo $JAVA_HOME  
/Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home

1
นอกจากนี้ฉันมีคำถามว่า "/ usr / libexec / java_home" คืออะไร ตอบ: medium.com/zendesk-engineering/…
ekar

1
/ usr / libexec / java_home เป็นวิธีการบำรุงรักษาที่ง่ายที่สุดในการตั้งค่า JAVA_HOME บน macOS คุณสามารถใช้ java_home เพื่อ: ค้นหา JDK ที่ติดตั้งทั้งหมด
Shomu

7

ขอแนะนำให้ตรวจสอบเทอร์มินัลเชลล์เริ่มต้นก่อนตั้งค่าตัวแปรสภาวะแวดล้อมJAVA_HOMEโดยใช้คำสั่งต่อไปนี้:

$ echo $SHELL
/bin/bash

หากเทอร์มินัลเริ่มต้นของคุณคือ/ bin / bash (Bash) คุณควรใช้วิธีการ@Adrian Petrescu

หากเทอร์มินัลเริ่มต้นของคุณคือ/ bin / zsh (Z Shell) คุณควรตั้งค่าตัวแปรสภาพแวดล้อมเหล่านี้ในไฟล์~ / .zshenvด้วยเนื้อหาต่อไปนี้:

export JAVA_HOME="$(/usr/libexec/java_home)"

ในทำนองเดียวกันประเภทเทอร์มินัลอื่น ๆ ที่ไม่ได้กล่าวถึงข้างต้นคุณควรตั้งค่าตัวแปรสภาพแวดล้อมในไฟล์ env ของเทอร์มินัลตามลำดับ


4

ฉันทำให้มันใช้งานได้โดยเพิ่มไปที่ ~ / .profile อย่างไรก็ตามหลังจากอัปเดตเป็น El Capitan beta แล้วก็ใช้งานไม่ได้แม้ว่า JAVA_HOME จะถูกกำหนดเป็น. bash_profile

หากมีผู้ใช้ El Capitan beta ให้ลองเพิ่มเป็น. profile


2
ความแตกต่างระหว่าง. profile และ. bash_profile
IgorGanapolsky

3
แนวคิดก็คือ. profile ทำงานสำหรับเชลล์ทั้งหมด (sh, zsh, อะไรก็ได้); .bash_profile สำหรับ bash เชลล์เท่านั้น
JohnL4

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.