Linux下jdk的安裝卸載切換

来源:https://www.cnblogs.com/xuesm/archive/2018/07/23/9356817.html
-Advertisement-
Play Games

1. Linux下jdk的安裝包: a).bin包(jdk-6u45-linux-i586-rpm.bin) b).tar.gz包(jdk-8u144-linux-i586.tar.gz) c).rpm包(jdk-7u80-linux-i586.rpm) 2.Linux下jdk的安裝: a).bin ...


1. Linux下jdk的安裝包:

  a).bin包(jdk-6u45-linux-i586-rpm.bin)

  b).tar.gz包(jdk-8u144-linux-i586.tar.gz)

  c).rpm包(jdk-7u80-linux-i586.rpm)

2.Linux下jdk的安裝:

  a).bin包:

 1 初始文件夾下只有jdk-6u45-linux-i586-rpm.bin文件:
 2 [root@localhost jdk-6u45]# ll
 3 總用量 67036
 4 -rwxr-xr-x. 1 root root 68637258 7月  20 15:11 jdk-6u45-linux-i586-rpm.bin
 5 
 6 給.bin文件的執行賦許可權
 7 [root@localhost jdk-6u45]# chmod +x jdk-6u45-linux-i586-rpm.bin
 8  9 
10 執行.bin文件
11 [root@localhost jdk-6u45]# ./jdk-6u45-linux-i586-rpm.bin 
12 Unpacking...
13 Checksumming...
14 Extracting...
15 UnZipSFX 5.50 of 17 February 2002, by Info-ZIP (Zip-[email protected]).
16   inflating: jdk-6u45-linux-i586.rpm  
17   inflating: sun-javadb-common-10.6.2-1.1.i386.rpm  
18   inflating: sun-javadb-core-10.6.2-1.1.i386.rpm  
19   inflating: sun-javadb-client-10.6.2-1.1.i386.rpm  
20   inflating: sun-javadb-demo-10.6.2-1.1.i386.rpm  
21   inflating: sun-javadb-docs-10.6.2-1.1.i386.rpm  
22   inflating: sun-javadb-javadoc-10.6.2-1.1.i386.rpm  
23 Preparing...                ########################################### [100%]
24    1:jdk                    ########################################### [100%]
25 Unpacking JAR files...
26     rt.jar...
27     jsse.jar...
28     charsets.jar...
29     tools.jar...
30     localedata.jar...
31     plugin.jar...
32     javaws.jar...
33     deploy.jar...
34  
35 Done.
36 [root@localhost jdk-6u45]# 
37 
38 當前文件夾下文件:
39 [root@localhost jdk-6u45]# ll
40 總用量 134524
41 -rw-r--r--. 1 root root 58463270 3月  27 2013 jdk-6u45-linux-i586.rpm
42 -rwxr-xr-x. 1 root root 68637258 7月  20 15:11 jdk-6u45-linux-i586-rpm.bin
43 -rw-r--r--. 1 root root   499375 11月  3 2010 sun-javadb-client-10.6.2-1.1.i386.rpm
44 -rw-r--r--. 1 root root    14627 11月  3 2010 sun-javadb-common-10.6.2-1.1.i386.rpm
45 -rw-r--r--. 1 root root  4080625 11月  3 2010 sun-javadb-core-10.6.2-1.1.i386.rpm
46 -rw-r--r--. 1 root root   969861 11月  3 2010 sun-javadb-demo-10.6.2-1.1.i386.rpm
47 -rw-r--r--. 1 root root  4865183 11月  3 2010 sun-javadb-docs-10.6.2-1.1.i386.rpm
48 -rw-r--r--. 1 root root   201273 11月  3 2010 sun-javadb-javadoc-10.6.2-1.1.i386.rpm
49 [root@localhost jdk-6u45]# 

  以上執行完之後, 會自動在/usr/目錄下生成java目錄, java目錄下包含jdk信息。最後修改/etc/profile文件即可。

1 [root@localhost java]# vim /etc/profile
2 進入文件後,添加JAVA_HOME,CLASSPATH,PATH配置。
3 export JAVA_HOME=/usr/java/jdk1.6.0_45
4 export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
5 export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
6 保存退出文件後,執行使文件生效命令
7 [root@localhost java]# source /etc/profile

  b).tar.gz包

1 解壓.tar.gz文件:
2 [root@localhost jdk-8u144]# tar -zxvf jdk-8u144-linux-i586.tar.gz
3 
4 解壓後的文件移至/usr/java/下:
5 [root@localhost jdk-8u144]# mv jdk1.8.0_144/ /usr/java/
6 
7 修改/etc/profile文件,配置環境變數, 添加JAVA_HOME,CLASSPATH,PATH路徑, 使文件生效, 同上。

  註意:如果/usr目錄下不存在java目錄, 直接使用mv jdk1.8.0_144/ /usr/java/命令, 會自動創建java目錄, 但是不會有jdk1.8.0_144/目錄, 只是將jdk1.8.0_144目錄下的文件移至了/usr/java/目錄下, 如果使用命令前存在java目錄, 則將jdk1.8.0_144/目錄作為整體移至/usr/java/目錄下。

 

  c).rpm包

   在使用.bin包方式安裝jdk時, 執行完命令會產生.rpm文件, 可以把這個rpm文件作為安裝文件, 也可以從Oracle下載。  

 1 初始含有.rpm包文件:
 2 [root@localhost jdk-7u80]# ll
 3 總用量 133572
 4 -rw-r--r--. 1 root root 136775360 7月  23 19:29 jdk-7u80-linux-i586.rpm
 5 
 6 使用rpm命令安裝
 7 [root@localhost jdk-7u80]# rpm -ivh jdk-7u80-linux-i586.rpm
 8 Preparing...                ########################################### [100%]
 9    1:jdk                    ########################################### [100%]
10 Unpacking JAR files...
11     rt.jar...
12     jsse.jar...
13     charsets.jar...
14     tools.jar...
15     localedata.jar...
16     jfxrt.jar...
17     plugin.jar...
18     javaws.jar...
19     deploy.jar...
20 [root@localhost jdk-7u80]#
21 
22 當前文件夾不會產生新文件
23 [root@localhost jdk-7u80]# ll
24 總用量 133572
25 -rw-r--r--. 1 root root 136775360 7月  23 19:29 jdk-7u80-linux-i586.rpm

  和.bin包的安裝一樣, 執行完命令, 會自動在/usr/目錄下創建java目錄, jdk信息放在jdk目錄下, 配置/etc/profile中配置JAVA_HOME,CLASSPATH,PATH就行。

  如果使用rpm -ivh jdk-7u80-linux-i586.rpm命令安裝出現RPM should not be used directly install RPM packages, use Alien instead!這個錯誤, 執行以下命令即可:

  rpm -ivh jdk-6u22-linux-i586.rpm --nodeps --force。

3. Linux下jdk的卸載:

  a).bin包安裝和.rpm包安裝的jdk卸載:

1 首先查看當前安裝的jdk信息:
2 [root@localhost jdk-7u80]# rpm -qa | grep jdk
3 jdk-1.7.0_80-fcs.i586
4 [root@localhost jdk-7u80]# 
5 
6 卸載安裝的jdk:
7 [root@localhost jdk-7u80]# rpm -e --nodeps jdk-1.7.0_80-fcs.i586

  b).tar.gz包安裝的jdk卸載:

  直接刪除解壓後的安裝包即可。

1 進入/usr/java目錄
2 [root@localhost java]# cd /usr/java/
3 
4 刪除解壓後的jdk文件
5 [root@localhost java]# rm -rf jdk1.8.0_144/

  c)系統自帶的jdk的卸載:

 1 查看自帶的jdk 2 [root@localhost /]# rpm -qa | grep jdk
 3 或者:
 4 [root@localhost /]# rpm -qa | grep gcj
 5 
 6 可能得到結果:
 7 jdk-1.7.0_80-fcs.i586
 8 
 9 卸載:
10 [root@localhost /]# rpm -e –nodeps jdk-1.7.0_80-fcs.i586
11 或者:
12 [root@localhost /]# ryum -y remove jdk-1.7.0_80-fcs.i586

 4.Linux上不同版本jdk的切換:

  1)安裝jdk與環境變數的配置:

    以jdk6u45,jdk7u80,jdk8u144作為案例安裝版本。其中jdk6u45版本是通過bin包安裝,jdk7u80和jdk8u144通過tar.gz解壓安裝。安裝過程中發現, 在使用bin包安裝一個版本後, 不能使用bin包或rpm包安裝其他版本。安裝目錄分別為:

    • jdk6u45:/usr/jdk/jdk6u45/jdk1.6.0_45/
    • jdk7u80:/usr/jdk/jdk7u80/jdk1.7.0_80/
    • jdk8u144:/usr/jdk/jdk8u144/jdk1.8.0_144/

    關於環境變數,在/etc/profile文件裡面, 沒有添加任何配置。

  2)將安裝的jdk登記在alternatives裡面:

    可以使用alternatives命令, 也可以使用sudo update-alternatives 命令。(兩者區別還沒瞭解)

 1 jdk6u45添加到alternatives裡面: 2 [root@localhost /]# alternatives --install /usr/bin/java java /usr/jdk/jdk6u45/jdk1.6.0_45/bin/java 3
 3 [root@localhost /]# alternatives --install /usr/bin/javac javac /usr/jdk/jdk6u45/jdk1.6.0_45/bin/javac 3
 4 [root@localhost /]# alternatives --install /usr/bin/jar jar /usr/jdk/jdk6u45/jdk1.6.0_45/bin/jar 3
 5 
 6 jdk7u80添加到alternatives裡面:
 7 [root@localhost /]# alternatives --install /usr/bin/java java /usr/jdk/jdk7u80/jdk1.7.0_80/bin/java 4
 8 [root@localhost /]# alternatives --install /usr/bin/javac javac /usr/jdk/jdk7u80/jdk1.7.0_80/bin/javac 4
 9 [root@localhost /]# alternatives --install /usr/bin/jar jar /usr/jdk/jdk7u80/jdk1.7.0_80/bin/jar 4
10 
11 jdk8u144添加到alternatives裡面:
12 [root@localhost /]# alternatives --install /usr/bin/java java /usr/jdk/jdk8u144/jdk1.8.0_144/bin/java 5
13 [root@localhost /]# alternatives --install /usr/bin/javac javac /usr/jdk/jdk8u144/jdk1.8.0_144/bin/javac 5
14 [root@localhost /]# alternatives --install /usr/bin/jar jar /usr/jdk/jdk8u144/jdk1.8.0_144/bin/jar 5

   3)查看安裝的jdk版本並切換:

 1 查看已經安裝的jdk版本:
 2 [root@localhost /]# alternatives --display java
 3 java - 狀態是自動。
 4  鏈接目前指向 /usr/jdk/jdk8u144/jdk1.8.0_144/bin/java
 5 /usr/jdk/jdk6u45/jdk1.6.0_45/bin/java - 優先度 3
 6 /usr/jdk/jdk7u80/jdk1.7.0_80/bin/java - 優先度 4
 7 /usr/jdk/jdk8u144/jdk1.8.0_144/bin/java - 優先度 5
 8 當前“最佳”版本是 /usr/jdk/jdk8u144/jdk1.8.0_144/bin/java。
 9 [root@localhost /]# 
10 
11 配置已經安裝的jdk版本:
12 [root@localhost /]# alternatives --config java
13 
14 共有 3 個程式提供“java”。
15 
16   選擇    命令
17 -----------------------------------------------
18    1           /usr/jdk/jdk6u45/jdk1.6.0_45/bin/java
19    2           /usr/jdk/jdk7u80/jdk1.7.0_80/bin/java
20 *+ 3           /usr/jdk/jdk8u144/jdk1.8.0_144/bin/java
21 
22 按 Enter 來保存當前選擇[+],或鍵入選擇號碼:2
23 [root@localhost /]# java -version
24 java version "1.7.0_80"
25 Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
26 Java HotSpot(TM) Server VM (build 24.80-b11, mixed mode)
27 [root@localhost /]# 

  4)補充:

  如果添加錯誤或者想從alternatives中移除可以使用alternatives --remove java /usr/jdk/jdk6u45/jdk1.6.0_45/bin/java命令。

  網上查的資料, 只是將bin/java添加到了alternatives中, 在嘗試的過程中, 發現只添加bin/java不能對java文件進行編譯, 所以在上面的也將bin/javac和bin/jar添加到了alternatives中。

  


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 基於Red Hat Enterprise Linux 7.5 Linux中的root就是存在於所有類UNIX系統中的超級用戶,持有最高管理許可權,能添加/刪除用戶、開關機、關閉或開啟硬體或者系統服務等,並且root的操作無法被阻擋。 Linux中root為什麼叫root,不是因為名字叫root,而是U ...
  • 我的 Ubuntu 鏡像是在「清華大學開源軟體鏡像網」下載的,版本號是16.04 下載一個ios文件,裝在虛擬機中就行了。 虛擬機用的 VMware Workstation 12, 註冊密鑰: 5A02H-AU243-TZJ49-GTC7K-3C61N AA39H-61W50-H8DCY-1MM79 ...
  • 什麼是netstat     在Linux系統中輸入 man netstat ,顯示的結果如下所示:     從上面可以看出netstat命令的主要功能為: 顯示網路連接信息 顯示路由表信息 顯示網卡統計信息 顯示無效的連接信息 顯示組播成員信息   ...
  • df命令用於查看磁碟的分區,磁碟已使用的空間,剩餘的空間 1、用法 df [選項] [文件..] 2、命令選項 -a,--all 全部文件系統-h,--human-readable 以以合適的單位來顯示信息-H,--si 與-h參數相同,但在計算時是以1000 Bytes為換算單位而非1024 By ...
  • 配置號IP地址後,使用ifconfig命令,沒有顯示eth0,重啟網卡(service network restart)又遇到以下報錯信息 報錯信息: 解決辦法: 首先使用ifconfig -a命令,記錄下eth1的mac地址:00:0C:29:C5:AA:CF 然後打開/etc/sysconfig ...
  • 卸載已經安裝的Docker 添加阿裡鏡像 查看可以安裝的docker版本 安裝18.03.1 啟動 Docker 設置Docker阿裡雲加速器 sudo mkdir p /etc/docker sudo tee /etc/docker/daemon.json 註意:需要替換 為你的阿裡雲加速器地址, ...
  • chmod用於管理文件或目錄的許可權,文件或目錄許可權的控制分別以讀取(r)、寫入(w)、執行(x)3種 可讀可寫可執行,抽象的用二進位來表示 1 代表擁有該許可權,0 代表沒有該許可權,這樣我們就可以看到 具有全部許可權二進位可理解為 “111” 即 十進位的 “7”,只有讀寫許可權二進位可理解為 “100” ...
  • CPUFreq子系統位於 drivers/cpufreq目錄下,負責進行運行過程中CPU頻率和電壓的動態調整,即DvFS( Dynamic Voltage Frequency Scaling,動態電壓頻率調整)。運行時進行CPU電壓和頻率調整的原因是:CMOS電路中的功耗與電壓的平方成正比、與頻率成 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...