ฉันติดตั้ง JDK โดยใช้ apt-get install แต่ไม่รู้ว่าโฟลเดอร์ jdk ของฉันอยู่ที่ไหน ฉันต้องกำหนดเส้นทางสำหรับสิ่งนั้น มีใครมีเงื่อนงำในสถานที่หรือไม่
/usr/local/java/
การกระจายออราเคิลดั้งเดิมที่ดาวน์โหลดมา
ฉันติดตั้ง JDK โดยใช้ apt-get install แต่ไม่รู้ว่าโฟลเดอร์ jdk ของฉันอยู่ที่ไหน ฉันต้องกำหนดเส้นทางสำหรับสิ่งนั้น มีใครมีเงื่อนงำในสถานที่หรือไม่
/usr/local/java/
การกระจายออราเคิลดั้งเดิมที่ดาวน์โหลดมา
คำตอบ:
ขึ้นอยู่กับระบบแพ็คเกจของคุณเล็กน้อยหากjava
คำสั่งใช้งานได้คุณสามารถพิมพ์readlink -f $(which java)
เพื่อค้นหาตำแหน่งของคำสั่ง java ในระบบ OpenSUSE ตอนนี้ฉันกลับมาแล้ว/usr/lib64/jvm/java-1.6.0-openjdk-1.6.0/jre/bin/java
(แต่นี่ไม่ใช่ระบบที่ใช้apt-get
)
บน Ubuntu ดูเหมือนว่าจะอยู่ใน /usr/lib/jvm/java-6-openjdk/
OpenJDK และในไดเรกทอรีย่อยอื่น ๆ ของ/usr/lib/jvm/
Suns JDK (และการใช้งานอื่น ๆ เช่นกันฉันคิดว่า)
สำหรับแพ็คเกจใดก็ตามคุณสามารถกำหนดไฟล์ที่จะติดตั้งและตำแหน่งที่จะติดตั้งโดยการสอบถาม dpkg ตัวอย่างเช่นสำหรับแพ็คเกจ 'openjdk-6-jdk':dpkg -L openjdk-6-jdk
/usr/lib/jvm/java-7-openjdk-amd64
ดูเหมือนว่าเส้นทางของฉันคือ
readlink -f $(which javac)
- สังเกต 'c' ในกรณีที่มีการผสมผสานที่แปลกของ JDK และ JRE ในเครื่องเดียวกัน JDK มีคอมไพเลอร์ (javac) และ JRE ไม่ อย่างไรก็ตามหากเส้นทางไม่ถูกต้องซึ่งจะล้มเหลวและคุณสามารถลอง: find /usr/java -wholename '*ava/jdk*' -prune
ตามที่ฉันทราบในความคิดเห็นด้านล่าง
update-java-alternatives -l
จะบอกคุณว่าการใช้จาวาใดเป็นค่าเริ่มต้นสำหรับระบบของคุณและในระบบไฟล์ที่ติดตั้ง ตรวจสอบคู่มือสำหรับตัวเลือกเพิ่มเติม
apt-get
และ distro Debian 2.6.26
ที่จะ AFAIK มันควรจะเหมือนกันสำหรับตราสารอนุพันธ์เดบิตทั้งหมด
$ which java
ควรให้อะไรคุณเช่น
/usr/bin/java
readlink -f $(which javac)
มันจะพิมพ์/usr/lib/jvm/java-8-oracle/bin/javac
ออกมา โฟลเดอร์ bin นั้นไม่ใช่ JDK ทดสอบกรดเบสทั่วไปเพื่อดูว่ามัน JDK คือเพื่อดูว่าปัจจุบันมีเส้นทางของ$JAVA_HOME
lib/tools.jar
ในการแสดง/usr/lib/jvm/java-8-oracle/bin
นั้นไม่เป็นความจริงดังนั้นจึงไม่ใช่ JDK
find /usr/java -wholename '*ava/jdk*' -prune
แต่พฤติกรรมขึ้นอยู่กับว่าคุณกำลังพูดถึง OpenJDK หรือ Oracle Java และวิธีการติดตั้งในครั้งแรก
คำถามนี้จะย้ายไป แต่คุณสามารถทำต่อไปนี้
which javac
หรือ
cd /
find . -name 'javac'
ใช้ find เพื่อค้นหาตำแหน่ง มันควรจะอยู่ภายใต้/usr
บางแห่ง:
find /usr -name java
เมื่อเรียกใช้คำสั่งหากมีข้อความ "สิทธิ์ที่ถูกปฏิเสธ" มากเกินไปทำให้สับสนกับผลลัพธ์ที่พบจริงเพียงแค่เปลี่ยนเส้นทาง stderr ไปที่ / dev / null
find /usr -name java 2> /dev/null
อีกวิธีที่ดีที่สุดในการค้นหาเส้นทางโฟลเดอร์ Java คือการใช้alternatives
คำสั่งใน Fedora Linux (ฉันรู้ว่ามันสำหรับ Ubuntu แต่ฉันกดโพสต์นี้จาก google เพียงแค่พาดหัว) เพียงต้องการแบ่งปันกรณีที่คนอย่างฉันกำลังมองหาคำตอบสำหรับรสชาติของ fedora
เพื่อแสดงข้อมูลทั้งหมดที่เกี่ยวกับจาวา
alternatives --display java
กระบวนการสามขั้นตอน: ครั้งแรก: เปิด Terminal-> $ whereis java
มันจะให้ผลลัพธ์ดังนี้:
java: /usr/bin/java /usr/share/java /usr/share/man/man1/java.1.gz
ที่สอง:
ls -l /usr/bin/java
มันจะให้ผลลัพธ์เช่นนี้
lrwxrwxrwx 1 root root 22 Feb 9 10:59 /usr/bin/java -> /etc/alternatives/java
ที่สาม:
ls -l /etc/alternatives/java
ผลลัพธ์เป็นเส้นทาง JDK:
lrwxrwxrwx 1 root root 46 Feb 9 10:59 /etc/alternatives/java -> /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
ง่ายลอง:
It's / usr / local / java / jdk [version]
คำสั่ง: sudo update-alternatives --config java
จะค้นหาพา ธ ที่สมบูรณ์ของ Java เวอร์ชันที่ติดตั้งทั้งหมด
คำถามนี้ยังดูเหมือนว่าเกี่ยวข้องและคำตอบน่าจะเป็นเป้าหมายที่เคลื่อนไหว
ในระบบเดเบียนของฉัน (บัสเตอร์):
> update-java-alternatives -l
java-1.11.0-openjdk-amd64 1111 /usr/lib/jvm/java-1.11.0-openjdk-amd64
อย่างไรก็ตามถ้าคุณไปดูที่นั่นจริงๆคุณจะเห็นว่ามีหลายไดเรกทอรีและลิงค์สัญลักษณ์ที่วางอยู่ในระบบแพ็คเกจเพื่อให้การบำรุงรักษาง่ายขึ้นในอนาคต
ไดเรกทอรีที่เกิดขึ้นจริงjava-11-openjdk-amd64
กับ symlink default-java
ของผู้อื่น นอกจากนี้ยังมีopenjdk-11
ไดเรกทอรี แต่ดูเหมือนว่าจะมีไฟล์ source.zip เท่านั้น
สำหรับ Debian เท่านั้นฉันคิดว่าค่าที่ดีที่สุดในการใช้คือ/usr/lib/jvm/default-java
ควรจะใช้ได้แม้ว่าคุณจะตัดสินใจที่จะติดตั้งจาวารุ่นที่แตกต่างกันโดยสิ้นเชิงหรือแม้กระทั่งเปลี่ยนผู้ขาย
เหตุผลปกติในการต้องการทราบเส้นทางเป็นเพราะบางแอปพลิเคชันต้องการและคุณอาจไม่ต้องการให้แอปหยุดเนื่องจากคุณทำการอัปเกรดที่เปลี่ยนหมายเลขเวอร์ชัน
บน OpenSUSE 13.1 / 13.2: /usr/lib64/jvm/java-1.6.0-openjdk-(version-number)
รุ่นหมายเลขสามารถเป็น 1.7.x 1.8.x และอื่น ๆ ตรวจสอบซอฟต์แวร์จัดการแม่มดรุ่นแม่มดที่คุณติดตั้ง ...
André
บน Linux Fedora30 หลายเวอร์ชันของ Java JDK แบบเต็มมีอยู่โดยเฉพาะชื่อแพ็คเกจ:
java-1.8.0-openjdk-devel.x86_64
java-11-openjdk-devel.x86_64
เมื่อติดตั้งแล้วจะพบได้ใน: /usr/lib/jvm
ในการเลือกตำแหน่ง / ไดเร็กทอรีของการพัฒนาแบบเต็ม JDK (ซึ่งแตกต่างจาก JRE รันไทม์ที่เรียบง่ายเท่านั้น) มองหารายการ:
ls -ld java*openjdk*
ต่อไปนี้เป็นตัวเลือกที่ดีสองข้อซึ่งเป็นลิงก์ไปยังเวอร์ชันเฉพาะซึ่งคุณจะต้องเลือกเวอร์ชัน:
/usr/lib/jvm/java-1.8.0-openjdk
/usr/lib/jvm/java-11-openjdk
นี่เป็นวิธีที่ดีที่สุดสำหรับฉันใช้งานคำสั่งนี้: -
$(dirname $(readlink $(which javac)))/java_home