centOs6.5配置jdk及其註意事項

来源:https://www.cnblogs.com/xiaohai2010/archive/2018/04/10/8777156.html
-Advertisement-
Play Games

1.下載jdk1.7 百度雲鏈接: https://pan.baidu.com/s/15vXLO2eV18eVvmt-R5jGnQ 密碼: 1gd6 2.解壓壓縮包 通過終端在/usr/local下新建java文件夾, [root@localhost ~]# mkdir/usr/local/java ...


1.下載jdk1.7

百度雲鏈接: https://pan.baidu.com/s/15vXLO2eV18eVvmt-R5jGnQ 密碼: 1gd6

2.解壓壓縮包

通過終端在/usr/local下新建java文件夾,

[root@localhost ~]# mkdir/usr/local/java

[root@localhost ~]# cd /usr/local/java

(不通過終端直接新建也可以)

將jdk壓縮包放進java文件夾下,然後進行解壓,

[root@localhost java]# tar -zxvf jdk7u79linuxx64.tar.gz

3.配置jdk環境

[root@localhost java]# vi /etc/profile 

 打開之後在末尾添加

JAVA_HOME=/usr/local/java/jdk1.7.0_79
JRE_HOME=/usr/local/java/jdk1.7.0_79/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH

修改之後按Esc,再輸入:wq保存

讓修改生效:[root@localhost java]# source /etc/profile

此時jdk已經算是配置好了,

註意:

  • 在linux系統中,由於涉及到版權問題,在大部分linux系統的發行版本中,預設都安裝了OpenJDK,並且OpenJDK的java命令也已經加入到環境變數中了。在剛裝好的linux系統中,運行java-version,輸出如下(根據JDK版本不同,輸出的版本可能不同):javaversion"1.7.0_131"OpenJDKRuntimeEnvironment(rhel-2.6.9.0.el6_8-x86_64u131-b00)但在進行java開發時,
    • 在linux系統中,由於涉及到版權問題,在大部分linux系統的發行版本中,預設都安裝了OpenJDK,並且OpenJDK的java命令也已經加入到環境變數中了。

      在剛裝好的linux系統中,運行java -version,輸出如下(根據JDK版本不同,輸出的版本可能不同):

      java version "1.7.0_131"
      OpenJDK Runtime Environment (rhel-2.6.9.0.el6_8-x86_64 u131-b00)

      但在進行java開發時,我們大多是需要使用Sun(準確的說應該是Oracle)的JDK,所以我們會去Oracle官網下載相應版本的JDK進行安裝。

      如何在linux上安裝,在此不在贅述。

      在linux上安裝完JDK後,我們會在~/.bash_profile 把安裝的java加入到環境變數中。原以為就萬事大吉了,在運行java程式時會使用自己安裝的JDK。

    • 如果你是這麼想的就大錯特錯了,在文章開頭講的,由於linux系統的發行版中預設安裝的時OpenJDK,儘管我們把安裝的SunJDK的java命令也加入到環境變數中,但是我們運行

      java -version,輸出確還是和之前一樣:

      java version "1.7.0_131"
      OpenJDK Runtime Environment (rhel-2.6.9.0.el6_8-x86_64 u131-b00)

       

      這要這麼破!!!

    • 一、查找原因

      不急,先運行

      whereis java,輸出如下:
      java: /usr/bin/java /etc/java /usr/lib/java /usr/lib64/java /usr/share/java /usr/local/java

      在幾個地方有java命令,其中/usr/local/java是我自己安裝的SunJDK的java命令所在的目錄,而/usr/bin/java是系統中預設安裝的java命令所在的目錄。

      原因就在這,

      我們執行

      ls -la /usr/bin/java,輸入如下:

      lrwxrwxrwx 1 root root 22 May 14 16:53 /usr/bin/java -> /etc/alternatives/java

      一看這是一個軟連接,我們cd到/etc/alternatives目錄下看個究竟,

      然後執行 ls -la,輸入比較多,而且很多軟鏈,其中有一個

      lrwxrwxrwx  1 root root   46 May 14 18:22 java -> /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java

      到此,應該明白了,java命令其實指向的是OpenJDK中的java命令,所以才會出現我們把自己安裝的SunJDK的java命令配置到環境變數中後,依然不起作用。

      所以我們要做的就是需要把java的軟鏈指向我們自己安裝的SunJDK的java命令,也即/usr/local/java。

       

      二、使用安裝的JDK替代系統預設的OpenJDK

      linux中提供了update-alternatives命令,update-alternatives是linux系統(大部分linux系統都支持此命令)中專門維護系統命令鏈接符的工具,通過它可以很方便的設置系統預設使用哪個命令、哪個軟體版本,而所有的這些就構成了備選方案系統(alternatives system)。

      很多時候我們會將擁有相同或相似功能的不同應用程式安裝在同一個操作系統上,例如同一個操作系統上的不同文本編輯器。這給了這個系統的用戶在編輯文本時有了更多的選擇,如果用戶願意他們可以自由選擇任意一個來使用。

      其實update-alternatives命令的功能很好理解,舉個例子:在Window系統中,如果我們安裝多個瀏覽器,比如有火狐、有IE、有360、有Chrome等,當我們從某個鏈接進去打開網頁時,可能會問你使用哪個瀏覽器,當你選擇某個瀏覽器時,此瀏覽器會問你是否把它作為預設瀏覽器,如果你選擇了是,那下次點開某個鏈接時,就直接使用預設瀏覽器打開了!

       

      現在我們在系統中同時安裝了open jdk和sun jdk兩個版本,(由於linux發行版本中預設使用OpenJDK的java命令)而我們又希望系統預設使用的是sun jdk,那怎麼辦呢?通過update-alternatives就可以很方便的實現了。

      首先運行以下命令查看java當前的預設配置

      update-alternatives --display java,輸出如下(後面有省略):
      java - status is manual.
       link currently points to /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
      /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java - priority 170131
       slave keytool: /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/keytool
       slave orbd: /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/orbd
      ......

      可以從輸出中看到系統中java預設使用的OpenJDK,其中數字170131表示優先順序。

       

      2.1 下麵進入正式配置階段

      1. 把自己安裝的SunJDK加入到備選系統中

      運行命令(註意命令最後的數字表示優先順序,其中170130 為SunJDK的alternative的優先順序)

       update-alternatives  --install /usr/bin/java java /usr/local/java 170130

       

      2. 選擇自己安裝的SunJDK作為首選java命令

      運行命令

      update-alternatives --config java,輸出如下

      There are 2 programs which provide 'java'.

        Selection    Command
      -----------------------------------------------
      *+ 1           /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
         2           /usr/local/java

      Enter to keep the current selection[+], or type selection number: 

      config命令是互動式的命令,可以根據提示進行選擇,此處我們選擇2,即使用安裝的SunJDK的java命令,然後按回車鍵!

      至此,配置完成了!

       

      說明:在配置步驟1中,我們指定SunJDK的優先順序是170130(比當前優先順序170131低),所以需要進行步驟二進行手動選擇;如果我們指定的優先順序比當前優先順序170131高,則步驟二可以省略,系統自動會選擇優先順序高的作為預設alternative!

 


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

-Advertisement-
Play Games
更多相關文章
  • linux 在整個架構上可以看作是三層: 1.底層代碼, (引導層strip) 跟硬體溝通的那一層的代碼(可能是彙編+c), 驅動底層的; strain: n./v. 拉緊, 張力, 氣質, 風格, 樂曲(這個詞的意思很多): 中間層代碼, OS層,用來管理文件系統,記憶體,作業調度等. 裡面的實現包 ...
  • 今天在知乎上看到一篇十分有趣的問題: 如何評價微軟高級工程師痴迷於soft link這一linux常見概念? 雖然又是知名撕逼王曾某的撕逼帖,但是我還是想就題目中鏈接的問題簡單地講講。 什麼是鏈接? 鏈接簡單說實際上是一種文件共用的方式,是 POSIX 中的概念,主流文件系統都支持鏈接文件。 它是用 ...
  • umask使用方法 A 什麼是umask? 當我們登錄系統之後創建一個文件總是有一個預設許可權的,那麼這個許可權是怎麼來的呢?這就是umask乾的事情。umask設置了用戶創建文件的預設 許可權,它與chmod的效果剛好相反,umask設置的是許可權“補碼”,而chmod設置的是文件許可權碼。一般在/etc/ ...
  • 一.續Centos7下部署Node,Nginx安裝部署: Nginx選擇安裝的是編譯版(附下載地址:https://nginx.org/download/),根據自己的系統環境選擇。 1.進入保存下載文件的路徑,cd進入文件保存路徑,命令: cd /usr/local/src 2.下載文件,我這選擇 ...
  • 一、 三極體簡介 種類 根據構成三極體中的三塊半導體類型的不同,有NPN型和PNP型兩種;根據材料的不同有硅管和鍺管兩種,常見的硅管,Vbe間的壓降是0.7V,鍺管則是0.2V。 作用 三極體有三種狀態,放大、截止和飽和,是一種控制電流的半導體器件。利用不同的狀態特性,三極體的主要作用有兩個: 1. ...
  • LCOW containers can now be run next to Windows containers.Use '--platform=linux' in Windows container mode to run Linux images.This is an experimental ...
  • 1.在任務欄右擊-任務管理器 2. ...
  • 1、首先編譯安裝nginx(不多說) 2、開始安裝openresty cd /usr/local/src wget https://openresty.org/download/openresty-1.11.2.2.tar.gz tar xf openresty-1.11.2.2.tar.gz cd ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...