แทนที่ openjdk ด้วย oracle-jdk บน Ubuntu


52

ฉันมีระบบอูบุนตูและฉันต้องการแทนที่ openjdk ด้วย oracle-jdk

อย่างไรก็ตามถ้าฉันลบ open-jdk ของฉันแล้วติดตั้ง oracle-jdk เมื่อฉันพยายามติดตั้งแพ็กเกจบางอย่างพวกเขาต้องการติดตั้ง openjdk และฉันไม่ต้องการสิ่งนี้

มีวิธีใดที่จะติดตั้งแพ็คเกจเหล่านี้ที่ด้านบนของ oracle-jdk หรือไม่? หนึ่งในแพ็คเกจเหล่านั้นคือสมาชิก


แพ็คเกจใดที่ต้องการ open-jdk ที่คุณต้องการติดตั้ง (นอกเหนือจากสมาชิก)
เซท

ผมจับ oracle-jdk เพิ่มตัวเองไปในPATH /etc/profile.d/jdk.shการลบไฟล์นี้และเริ่มเชลล์สดอนุญาตupdate-alternativesให้ทำงานได้
jozxyqk

คำตอบ:


78

คุณสามารถลบOpenJDKและติดตั้งใหม่ได้อย่างสมบูรณ์Oracle Java JDKโดยทำตามขั้นตอนเหล่านี้:

  1. ลบออกOpenJDKอย่างสมบูรณ์โดยคำสั่งนี้:

    sudo apt-get purge openjdk-\*
  2. ดาวน์โหลดที่นี่Oracle Java JDK

    หมายเหตุ:ดาวน์โหลดไฟล์ที่เหมาะสมตัวอย่างเช่นหากระบบของคุณคือ x64 Ubuntu (เช่น Debian) ไฟล์ดาวน์โหลดจะมีชื่อดังนี้:jdk-8u51-linux-x64.tar.gz

    หากต้องการค้นหาว่าระบบปฏิบัติการของคุณเป็นรุ่นใดให้ตรวจสอบที่นี่

  3. สร้างโฟลเดอร์ชื่อjavaใน/usr/local/โดยคำสั่งนี้:

    sudo mkdir -p /usr/local/java
  4. /usr/local/javaคัดลอกไฟล์ที่ดาวน์โหลดมาในไดเรกทอรี ในการทำเช่นนี้cdไปยังไดเรกทอรีที่มีไฟล์ที่ดาวน์โหลดอยู่และใช้คำสั่งนี้เพื่อคัดลอกไฟล์นั้นไปที่/usr/local/java/:

    sudo cp -r jdk-8u51-linux-x64.tar.gz /usr/local/java/
  5. ซีดีลงใน/usr/local/java/ไดเรกทอรีและแยกไฟล์ที่คัดลอกโดยใช้คำสั่งนี้:

    sudo tar xvzf jdk-8u51-linux-x64.tar.gz
  6. jdk1.8.0_51หลังจากการสกัดที่คุณต้องดูโฟลเดอร์ชื่อ

  7. อัพเดตPATHไฟล์โดยการเปิด /etc/profileไฟล์โดยคำสั่งsudo nano /etc/profileและวางต่อไปนี้ไว้ท้ายไฟล์:

    JAVA_HOME=/usr/local/java/jdk1.8.0_51
    PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
    export JAVA_HOME
    export PATH
    
  8. บันทึกและออก.

  9. บอกระบบว่า Oracle Java เวอร์ชันใหม่พร้อมใช้งานโดยคำสั่งต่อไปนี้:

    sudo update-alternatives --install "/usr/bin/java" "java" "/usr/local/java/jdk1.8.0_51/bin/java" 1
    sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/local/java/jdk1.8.0_51/bin/javac" 1
    sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/local/java/jdk1.8.0_51/bin/javaws" 1
    
  10. ทำให้ Oracle Java JDK เป็นค่าเริ่มต้นโดยคำสั่งต่อไปนี้:

    sudo update-alternatives --set java /usr/local/java/jdk1.8.0_51/bin/java
    sudo update-alternatives --set javac /usr/local/java/jdk1.8.0_51/bin/javac
    sudo update-alternatives --set javaws /usr/local/java/jdk1.8.0_51/bin/javaws
    
  11. โหลด sytem wide PATH / etc / profile โดยคำสั่งนี้:

    source /etc/profile
  12. รีบูตระบบของคุณ

  13. ตรวจสอบเวอร์ชั่น Java JDK ตามjava -versionคำสั่ง หากการติดตั้งสำเร็จจะแสดงดังต่อไปนี้:

    java version "1.8.0_51"
    Java(TM) SE Runtime Environment (build 1.8.0_51-xxx)
    Java HotSpot(TM) Server VM (build 25.51-xxx, mixed mode)
    

แค่นั้นแหละ!

หมายเหตุ:เราสันนิษฐานว่าไฟล์ที่ดาวน์โหลดมีการตั้งชื่อjdk-8u51-linux-x64.tar.gzและใช้ชื่อนี้ในคำสั่งทั้งหมดที่ใช้ในขั้นตอนที่ 2, 4 และ 5 ขึ้นอยู่กับประเภทของระบบปฏิบัติการ, ประเภทโปรเซสเซอร์ (เช่น 32 บิตหรือ 64 บิต)


1
นอกจากนี้ยังเป็นวิธีที่ถูกต้องในการติดตั้ง oracle-jdk ด้วยตนเองมีแพ็คเกจที่ใช้ได้จาก WebUpd8 PPA ซึ่งจะมีการอัพเดตด้วย ดังนั้นไม่จำเป็นต้องติดตั้งทุกเวอร์ชั่นใหม่ด้วยตนเอง ดูคำตอบของฉันที่นี่: askubuntu.com/questions/466166/…
lschuetze

2
แทนที่จะใช้ไดเรกทอรี jdk1.8.0_51 ให้สร้าง symlink ชื่อเพียง "jdk" ไปยังไดเรกทอรีนี้และครั้งต่อไปที่คุณอัปเดตเพียงดึง tarball JDK และสร้าง symlink ใหม่และดำเนินการเสร็จสิ้น
ColinM

สำหรับผู้ใช้ Ubuntu: มีวิธีที่เข้าใจผิดได้ด้านล่างจาก @ mihaic ที่ใช้งานได้ดีสำหรับฉัน
Carson Ip

คุณคือ rockstar
Bhupinder

โปรดทราบว่าหากคุณต้องการดาวน์โหลด JDK ใน Ubuntu Server (ไม่มี GUI) คุณสามารถใช้คำสั่งต่อไปนี้: wget --header "Cookie: oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/9.0.4+11/c2514751926b4512b076cc82f959763f/jdk-9.0.4_linux-x64_bin.tar.gz" คุณสามารถคัดลอกเวอร์ชันล่าสุดได้เสมอโดยกลับไปที่หน้าดาวน์โหลด Oracle และสร้างใหม่
Toan Nguyen

20

คุณไม่จำเป็นต้องลบ openjdk เพื่อที่จะใช้ / ติดตั้ง jdk ของ oracle เพียงติดตั้ง jdk ของ oracle และกำหนดค่า java ที่คุณต้องการใช้โดยกำหนดค่าด้วย:

sudo update-alternatives --config java

คุณสามารถค้นหาความช่วยเหลือเพิ่มเติมได้ที่นี่: https://help.ubuntu.com/community/Java


ฉันต้องการวิธีที่จะมีเพียงหนึ่งจาวาบนอูบุนตูของฉัน TNX
ali น้อย

นี่คือคำตอบที่ดี Groovy บน Debian jessie บังคับให้ติดตั้ง openjdk แต่งานที่ฉันต้องทำ (ไม่ต้องถาม) Oracle JDK สำหรับการรวบรวม ตัวเลือกนี้อนุญาตให้ฉันปล่อยให้ทั้ง openjdk และ oracle jdk ติดตั้งเพื่อให้ทุกอย่างเล่นได้ดี ขอบคุณ!
sanimalp

11

ผ่านการทดสอบใน Ubuntu 14.04 / 16.04 ในสามขั้นตอน:

  1. ติดตั้งoracle-java7-installer(หรือoracle-java8-installer) จากที่เก็บ webupd8team

    sudo add-apt-repository ppa:webupd8team/java
    sudo apt-get update
    sudo apt-get install oracle-java7-installer
    
  2. ตรวจสอบให้แน่ใจว่าใช้งานได้กับคำสั่งต่อไปนี้:

    java -version

    มันควรแสดงสิ่งที่คล้ายกับ:

    java version "1.7.0_76"
    Java(TM) SE Runtime Environment (build 1.7.0_76-b13)
    Java HotSpot(TM) 64-Bit Server VM (build 24.76-b04, mixed mode)
    
  3. (ไม่บังคับ) ลบ open-jdk หากคุณต้องการ / ต้องการ:

    sudo apt-get purge openjdk-\*

คุณสามารถค้นหาข้อมูลเพิ่มเติมได้ที่นี่


ทำตามคำแนะนำของคุณและได้รับUnable to find java executable. Check JAVA_HOME and PATH environment variables.ข้อผิดพลาด
Zack S

ประหลาดใจที่พบคำตอบของฉันเองในอีกหนึ่งปีต่อมาสิ่งนี้ยังใช้ได้กับUbuntu 16.04และoracle-java8-installer
toto_tico

รับสิ่งนี้เมื่อเพิ่ม repo:W: The repository 'http://ppa.launchpad.net/natecarlson/maven3/ubuntu xenial Release' does not have a Release file. N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use.
crockpotveggies

8

หลังจากลบ openjdk ให้ลองวิธีนี้ที่เหมาะกับฉัน:

ติดตั้ง oracle jdk 7 บนเซิร์ฟเวอร์ ubuntu (ทดสอบกับ ubuntu 12.0.4)

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer

ข้อมูลเพิ่มเติมบางอย่างที่นี่: https://launchpad.net/~webupd8team/+archive/java

(โปรดทราบเพื่อปรับให้เหมาะกับรุ่นของ jdk ของคุณ)

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