UPDATE : การติดตั้งโดยไม่มีสิทธิ์รูทด้านล่าง
ฉันแนะนำให้คุณไม่ติดตั้งแพ็คเกจด้วยตนเองบนระบบอูบุนตูหากมีที่เก็บ (กึ่งทางการ) ที่สามารถแก้ปัญหาของคุณได้ นอกจากนี้ให้ใช้ Oracle JDK ในการพัฒนาเพื่อหลีกเลี่ยงปัญหาความเข้ากันได้ (ประปรายมาก) (ฉันเคยลองมาหลายปีแล้วตอนนี้ดีขึ้นแน่นอน)
เพิ่มrepo webupd8ในระบบของคุณ:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
ติดตั้ง jdk เวอร์ชันที่คุณต้องการ (มีตั้งแต่ java-6 ถึง java-9):
sudo apt-get install oracle-java8-installer
คุณยังสามารถติดตั้ง jdk ได้หลายเวอร์ชันโดยผสมเวอร์ชัน openjdk และ oracle จากนั้นคุณสามารถใช้คำสั่งupdate-java-alternateเพื่อสลับระหว่างเวอร์ชันที่ติดตั้ง:
# list available jdk
update-java-alternatives --list
# use jdk7
sudo update-java-alternatives --set java-7-oracle
# use jdk8
sudo update-java-alternatives --set java-8-oracle
ข้อกำหนด
หากคุณadd-apt-repository: command not found
แน่ใจว่าได้software-properties-common
ติดตั้งแล้ว:
sudo apt-get install software-properties-common
หากคุณใช้ Ubuntu รุ่นเก่ากว่า:
sudo apt-get install python-software-properties
การติดตั้ง JDK โดยไม่มีสิทธิ์รูท
หากคุณไม่มีสิทธิ์ของผู้ดูแลระบบในเครื่องเป้าหมายของคุณการเดิมพันที่ง่ายที่สุดคือใช้sdkman
เพื่อติดตั้ง openjdk ที่ได้รับการรับรองจากซูลู:
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install java
หมายเหตุ : sdkman อนุญาตให้ติดตั้ง Oracle JDK อย่างเป็นทางการแม้ว่าจะไม่ใช่ตัวเลือกเริ่มต้นก็ตาม ดูเวอร์ชันที่มี:
sdk ls java
ติดตั้งเวอร์ชันที่เลือกด้วย:
sdk install java <version>
ตัวอย่างเช่น:
sdk install java 9.0.1-oracle
อภิธานศัพท์คำสั่ง
sudo <command> [command_arguments]
: ดำเนินการคำสั่งด้วยสิทธิ์ superuser
add-apt-repository <PPA_id>
: Ubuntu (เช่นเดียวกับอนุพันธ์ของ Debian ทุกตัวและโดยทั่วไปจะพูดถึงการแจกจ่าย Linux ทุกตัว) มีที่เก็บหลักของแพ็คเกจที่จัดการสิ่งต่างๆเช่นการพึ่งพาแพ็คเกจและการอัปเดต ใน Ubuntu เป็นไปได้ที่จะขยายพื้นที่เก็บข้อมูลหลักโดยใช้ PPA (Personal Package Archive) ที่มักจะมีแพ็คเกจที่ไม่มีในระบบ (เช่นเดียวกับ oracle jdk) หรือเวอร์ชันที่อัปเดตของเวอร์ชันที่พร้อมใช้งาน (ตัวอย่าง: LibreOffice 5 ใน LTS มีให้ใช้งานผ่านทางนี้เท่านั้นPPA )
apt-get [install|update|upgrade|purge|...]
: เป็น "ตัวจัดการแพ็กเกจบรรทัดคำสั่ง" ที่ใช้ในการจัดการสถานะของทุกที่เก็บบนระบบ (การติดตั้ง / อัปเดต / อัปเกรดสามารถดูได้ว่าเป็นการเปลี่ยนแปลงสถานะปัจจุบันของที่เก็บ)
ในกรณีของเรา : ด้วยคำสั่งsudo add-apt-repository ppa:webupd8team/java
เราจะแจ้งให้ระบบทราบว่าการอัปเดตที่เก็บครั้งต่อไปต้องดึงข้อมูลแพ็กเกจจาก webupd8 repo ด้วย
เมื่อsudo apt-get update
เราอัปเดตที่เก็บระบบจริง ๆ (การดำเนินการทั้งหมดนี้ต้องใช้สิทธิ์ผู้ใช้ขั้นสูงดังนั้นเราจึงใส่sudoไว้ข้างหน้าคำสั่ง)
sudo apt-get install oracle-java8-installer
update-java-ทางเลือก ( ทางเลือกการอัปเดตเวอร์ชัน java เฉพาะ): ใน Ubuntu หลายแพ็คเกจมีฟังก์ชันการทำงานเหมือนกัน (ท่องอินเทอร์เน็ตรวบรวมอีเมลแก้ไขไฟล์ข้อความหรือจัดเตรียมไฟล์ปฏิบัติการ java / javac ... ) ที่จะช่วยให้ระบบการเลือกเครื่องมือที่ใช้ในรายการโปรดรับงานเฉพาะกลไกการใช้symlinksภายใต้การ/etc/alternatives/
ถูกนำมาใช้ ลองอัปเดต jdk ตามที่ระบุไว้ด้านบน (สลับระหว่าง java 7 และ java 8) และดูว่าเปลี่ยนผลลัพธ์ของคำสั่งนี้อย่างไร:
ls -l /etc/alternatives/java*
ในกรณีของเรา : sudo update-java-alternatives --set java-8-oracle
อัปเดต symlinks ภายใต้ / etc / ทางเลือกเพื่อชี้ไปที่ไฟล์ปฏิบัติการ java-8-oracle
พิเศษ:
man <command>
: เริ่มใช้ man เพื่ออ่านความช่วยเหลือที่เขียนได้ดีและมีรายละเอียดเกี่ยวกับคำสั่งเชลล์ (เกือบ) ทุกคำสั่งและตัวเลือกต่างๆ (ทุกคำสั่งที่ฉันพูดถึงในคำตอบเล็ก ๆ นี้มี man page ให้ลองman update-java-alternatives
)
apt-cache search <search_key>
: ค้นหาแคช APT เพื่อค้นหาแพ็กเกจที่เกี่ยวข้องกับคีย์การค้นหาที่ให้มา (อาจเป็นชื่อแพ็กเกจหรือบางคำในคำอธิบายแพ็กเกจ)
apt-cache show <package>
: ให้ข้อมูล APT สำหรับแพ็กเกจเฉพาะ (เวอร์ชันแพ็กเกจติดตั้งหรือไม่คำอธิบาย)