จะค้นหา JAVA_HOME ปัจจุบันของฉันใน Ubuntu ได้อย่างไร ฉันต้องตั้งค่าเส้นทาง java_home เมื่อติดตั้ง maven
จะค้นหา JAVA_HOME ปัจจุบันของฉันใน Ubuntu ได้อย่างไร ฉันต้องตั้งค่าเส้นทาง java_home เมื่อติดตั้ง maven
คำตอบ:
พิมพ์ในอาคาร
echo $JAVA_HOME
แสดงพา ธ ตัวแปร JAVA_HOME
หากไม่มีอะไรปรากฏขึ้นให้ตั้งค่าด้วยสิ่งนี้
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
สิ่งนี้จะแตกต่างกันไปตามประเภทและรุ่น JDK ของคุณ
สำหรับการแสดงตามคำสั่งแรก
ติดตามโพสต์นี้เพื่อใช้ JDK อื่นหรือสลับไปมาระหว่าง JDK
JAVA_HOME doesn't make jdk default, it just makes JAVA_HOME variable set to a path & if you want to use different jdk installed on same machine then check my answer, I have edited it.
ถ้าคุณมี JDK 1.6 (ตรงกับ Java 6) หรือรุ่นที่ใหม่กว่าการติดตั้งคุณควรจะมีโปรแกรมชื่อในของคุณjrunscript
คุณสามารถใช้เพื่อหาสิ่งที่สอดคล้องกันPATH
JAVA_HOME
ตัวอย่าง:
$ jrunscript -e 'java.lang.System.out.println(java.lang.System.getProperty("java.home"));'
/opt/local/jdk1.7.0_76/jre
คุณสามารถตั้งค่าตัวแปรสภาพแวดล้อมดังนี้:
$ export JAVA_HOME="$(jrunscript -e 'java.lang.System.out.println(java.lang.System.getProperty("java.home"));')"
โปรดทราบว่า JRE ไม่ได้รวมjrunscript
ดังนั้นจะใช้งานได้เฉพาะเมื่อคุณติดตั้ง JDK ไม่ใช่เฉพาะ JRE
อีกทางเลือกแบบพกพาคือการแยกเส้นทางที่แน่นอนของ JDK จากjavac
:
export JAVA_HOME=`type -p javac|xargs readlink -f|xargs dirname|xargs dirname`
javac
เส้นทางที่แน่นอนถูกส่งไปยังdirname
สองครั้งเพื่อลบออก/bin/javac
จากจุดสิ้นสุด การแตกไดเรกทอรีเสร็จสมบูรณ์จะเป็นดังนี้:
$ type -p javac
/usr/bin/javac
$ readlink -f /usr/bin/javac
/usr/lib/jvm/java-8-oracle/bin/javac
$ dirname /usr/lib/jvm/java-8-oracle/bin/javac
/usr/lib/jvm/java-8-oracle/bin/
$ dirname /usr/lib/jvm/java-8-oracle/bin/
/usr/lib/jvm/java-8-oracle/
type -p javac|xargs readlink -f|xargs dirname|xargs dirname
(ไม่มีส่วนส่งออก) เพื่อทราบไดเรกทอรีโดยไม่ต้องตั้งค่า
ในการคำนึงถึงกลไกการอัพเดตทางเลือก:
$ update-alternatives --query java | grep 'Value: ' | grep -o '/.*/jre'
คุณสามารถตั้งค่าตัวแปรสภาพแวดล้อมดังนี้:
$ export JAVA_HOME="$(update-alternatives --query java | grep 'Value: ' | grep -o '/.*/jre')"
/jre
ในขณะที่มันจะยังคงมีต่อท้าย คุณอาจลองexport JAVA_HOME="$(update-alternatives --query java | grep 'Value: ' | sed -e 's/Value: //;s?/jre/bin/java??;')"
เพียงแค่เรียกใช้คำสั่ง
sudo update-alternatives --config java
มันจะให้อะไรเช่น
Es gibt nur eine Alternative in Link-Gruppe java (die /usr/bin/java bereitstellt): /usr/lib/jvm/java-8-oracle/jre/bin/java
จากนี้คุณมี / usr / lib / jvm / java-8-oracle / เป็นบ้าน java ตอนนี้คุณสามารถส่งออกไปยังตัวแปร JAVA_HOME
export JAVA_HOME=/usr/lib/jvm/java-8-oracle/
ทีนี้ echo $ JAVA_HOME แสดง
ฉันใช้สิ่งนี้ใน Ubuntu LTS (14.04 / 16.04):
[ -L /etc/alternatives/java ] &&
export JAVA_HOME="$(readlink -f /etc/alternatives/java | sed -e 's/\/jre\/bin\/java$//')"
ตั้งค่าตัวแปรสภาพแวดล้อม Java
PPA ยังมีแพ็กเกจเพื่อตั้งค่าตัวแปรสภาพแวดล้อม Java โดยอัตโนมัติเพียงเรียกใช้คำสั่ง:
sudo apt install oracle-java8-set-default
จากบทความนี้: ติดตั้ง Oracle Java 8/9 ใน Ubuntu 16.04, Linux Mint 18
สำหรับ Java 9 และใหม่กว่า:
คำตอบนี้https://askubuntu.com/a/657468/963ใช้เอ็นจินของ Nashorn JavaScript ที่แนบมาด้วย Nashorn เพื่อพิมพ์java.home
คุณสมบัติของระบบ Nashorn กำลังเลิกใช้ดังนั้นทางเลือกอื่นก็คือjshell
แนะนำให้ใช้ใน Java 9
echo 'System.out.println(java.lang.System.getProperty("java.home"));' | jshell -
ระบบของ Ubuntu 18.10 ที่พิมพ์บน:
/usr/lib/jvm/java-11-openjdk-amd64