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
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...