在Linux環境下采用壓縮包方式安裝JDK 13

本文地址:http://www.javashuo.com/article/p-osvupvin-kg.html
能夠,轉載,出處,格式,懂??html

什麼是JDK??

好吧若是你不知道這個問題的話我實在是不知道你爲何要裝這個東西。java

JDK(Java Development Kit)Sun公司(後被Oracle收購)推出的面向對象程序設計語言開發工具包,擁有這個工具包以後咱們就可使用Java語言進行程序設計和開發。linux

而今天咱們要在Linux環境 下對這個東西進行部署以便可以進行開發,而且是以壓縮包解壓的方式進行安裝,之因此不用rpm方式安裝主要是爲了可以在全部Linux系統上都通用,rpm和deb最多隻能在Red Hat和Debian旗下的Linux系統上分別安裝,並且還會有互相轉換的問題,可是用壓縮包就沒有這個問題了,儘管相對要繁瑣一些shell

操做系統:CentOS Linux Release 8.0.1905 (Core)
環境:Virtual Box 虛擬機vim

那我只想讓Java的程序可以在我這上運行呢??

若是你實在懶得找或者找不到JRE的安裝教程的話,那你權且也能夠跟着這個流程一塊兒走下來,保證你的Java程序確實可以運行,只是你的Linux操做系統上會多出來不少你實際上徹底不須要的東西。windows

若是我想安裝其餘的版本呢??

JDK 8及如下的版本可能與此有所區別,請參考其餘專門安裝JDK 8的安裝過程。
JDK 10以上應該可這個過程大致沒有太多區別,不過參考的時候請務必注意有些位置須要換成你當前的版本代號。bash

你爲何要在Linux上安裝呢??你不是更喜歡在Windows平臺拿Eclipse作Java開發嗎??

你的問題還真是多啊,你說得對,可是在特別需求的情形下,我不得不採起一些「我不喜歡」的行爲。
而這個就是一個,由於我須要在Linux平臺下部署Hadoop,而新安裝的CentOS裏面根本沒有Java的環境:cookie

[user@localhost /]$ java -version
bash: java: 未找到命令...

Java SE是Hadoop的一個先決條件網絡

並且若是部署好了的話我也能夠用Linux作Java開發了豈不美哉??oracle

可是看起來網上的同類的教程很是多啊

我何時說過這是一篇教程了??這只是做爲個人一次過程記錄而已,若是可能的話我也但願它可以成爲其餘人的參考,並且我也參考了不少人的安裝過程,最終我成功了。

站在了無數巨人的肩膀上。

好了很少說了,那就開始吧。

嗯,確實如此。首先須要安裝一個Linux的系統不必是CentOS,也能夠是Ubuntu、Fedora 、Debian什麼的隨你喜歡,用不用GUI也無所謂,由於即便我安裝了一個帶有GUI的CentOS,個人安裝過程其實是用bash指令完成的。
在實際進行安裝以前,我必須提早說明

和Windows不同,Linux系統是對大小寫敏感的,也就是說/Somewhere/a.zip/somewhere/A.zip並不在同一目錄下,也不是同一個文件名,這點請務必注意!!!
下文中出現的全部shell指令的真正內容都是從$以後開始的。

至於你是實體機仍是虛擬機這個區別應該不大,你能夠實際拿個U盤去裝也能夠下個VMWare或者Virtual Box什麼的。這裏我不作說明。

下載JDK壓縮包

總之,CentOS 8我安裝好了,固然你可能用的是Ubuntu 16.04什麼的這個就隨便了,接下來要從網絡上下載一個JDK13的壓縮包(jdk-13_linux-x64_bin.tar.gz

這裏假設你不管是GUI下載仍是wget下載方式,你都已經把壓縮包下載至/usr/download目錄下了

若是你的Linux系統有GUI而且系統預裝了Firefox,那麼你能夠像在Windows裏同樣拿Firefox火速衝到JDK的下載地址,像這樣:
Firefox Downloading J

若是沒有GUI的話,你能夠用wget指令:

[user@localhost /usr/lib/jvm/jdk-13]$ su root # 整個過程須要提高爲root權限進行,由於普通用戶不能夠在usr、etc文件夾及它們的子文件夾下進行修改
[root@localhost /]$ mkdir /usr/download # 若是你沒有這個目錄的話就先鍵入這個指令,不然直接看下一句
[root@localhost /]$ cd /usr/download
[root@localhost /usr/download]$ wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "https://download.oracle.com/otn-pub/java/jdk/13+33/5b8a42f3905b406298b72d750b6919f6/jdk-13_linux-x64_bin.tar.gz"

注意:由於Oracle官網要求必須登陸Oracle帳號才能下載JDK等內容,因此直接鍵入

wget https://download.oracle.com/otn-pub/java/jdk/13+33/5b8a42f3905b406298b72d750b6919f6/jdk-13_linux-x64_bin.tar.gz

下載出來的jdk-13_linux-x64_bin.tar.gz只有5KB(實際上應當是180MB),那個東西根本就不是壓縮包而是一個請求頁面而已。因此若是經過命令行的方式下載只能經過上面的方式進行下載
下載好了以後查看一下jdk-13_linux-x64_bin.tar.gz的屬性:

[root@localhost /]$ ls -al jdk-13_linux-x64_bin.tar.gz
-rw-rw-r--. 1 user user 188711447 9月  19 11:13 jdk-13_linux-x64_bin.tar.gz

在一些Linux操做系統下,此時文件名的位置被顯示爲紅色,意思是說:

這是一個壓縮文件

因此沒必要擔憂,這不是錯誤,你能夠繼續進行。

若是你發現188711447(約180MB)被5307(約5KB)(也就是說文件大小嚴重不一致)替代了意味着你的下載連接是錯誤的,請詳細閱讀上文「注意」裏面的內容而後用rm jdk-13_linux-x64_bin.tar.gz刪掉這個文件並從新下載,若是大小不一致可是差很少大有多是你下載了其餘的版本,也有多是壓縮包損壞了,若是是後者請從新下載。

我沒法鏈接到互聯網,但我在一個局域網絡下,而且同網絡下其餘的機器上有壓縮包

那……配置好此係統的網絡和SSH協議,而後在安裝源主機上創建SSH遠程鏈接,經過SSH的ftp將源主機的壓縮包發送到目標機器上而後繼續,具體過程之後再說……

解壓JDK安裝包中的文件

接下來使用tar指令解壓壓縮包,解壓至/usr/lib/jvm目錄下:

[root@localhost /usr/download]$ mkdir /usr/lib/jvm
[root@localhost /usr/download]$ tar -xf jdk-13_linux-x64_bin.tar.gz -C /usr/lib/jvm  #-- 這一步請耐心等待一會,須要一段時間
[root@localhost /usr/download]$ cd /usr/lib/jvm
[root@localhost /usr/lib/jvm]$ ls
jdk-13

你會看到在/usr/lib/jvm下存在一個叫作jdk-13的文件夾,咱們進去看看

[root@localhost /usr/lib/jvm]$ cd jdk-13
[root@localhost /usr/lib/jvm/jdk-13]$ ls
bin  conf  include  jmods  legal  lib  man  release

至此,JDK的全部組件都已經備齊了,接下來要進行配置。

添加環境變量

注意:這裏要求使用VIM

  • 若是你會使用VIM
    • 啊,那沒問題,繼續吧
  • 若是你不會使用VIM
    • 若是你使用的Linux系統帶有GUI界面
      • 你可使用預裝的文本編輯器進行編輯,就像在Windows裏面使用記事本那樣。
    • 不然
      • 若是你想了解VIM
        • 找其餘人的教程看看VIM的基本操做方法
      • 不然,若是你有值得信賴且能力夠強的朋友的話
        • 找他幫你弄弄
      • 不然
        • emmm……我在此由衷地替您感到悲哀

在Windows下使用安裝程序安裝的時候通常來講環境變量是被自動配置好的,可是很惋惜咱們如今是手動安裝,JDK的工做依賴於大量的環境變量中的路徑。

好像Oracle系的軟件都是這副死亞子,好比Oracle DB……

JDK須要這樣幾個環境變量:

  • JAVA_HOME :Java的主目錄,你把壓縮包包解壓以後獲得的jdk-13文件夾所在的位置(而且包含jdk-13自身)
  • JRE_HOME:JRE的主目錄,JRE是運行Java應用程序的最基本軟件環境,因此若是你只是但願Java的程序可以運行的的話你徹底不須要安裝JDK,儘管JDK裏面帶有JRE。
  • CLASSPATH:Java提供的標準或公共類庫的位置
  • PATH:這是系統的環境變量,這個東西只是告知系統你的Java開發環境被安裝在了什麼位置,這個東西使你在任意目錄下均可以直接執行Java的開發工具好比javac等,直接鍵入javac就能夠執行而不須要再從新鍵入/usr/lib/jvm/jdk-13/bin/javac
    Linux系統下的環境變量被存儲於若干個文件裏,其做用範圍有所不一樣,有的只做用於當前用戶,而有的做用於全體用戶。而咱們這裏的環境直接對全體用戶生效就能夠了(由於除了root就我一個用戶user),因此,這裏咱們會對/etc/profile進行修改。
    不過咱們如今知道JAVA_HOME=/usr/lib/jvm/jdk-13,這個目錄意思是說包含了全部和Java運行環境相關的東西,咱們看看裏面都有什麼
[user@localhost /usr/lib/jvm/jdk-13]$ ls
bin  conf  include  jmods  legal  lib  man  release

其中bin是Java全部開發工具(一般是可執行的應用程序)所在的目錄,而lib裏面則是Java提供的公共類庫,固然這個也就是咱們在找的CLASSPATH了。
那麼,JRE_HOME怎麼辦呢??
早在JDK 8的時候,安裝好的JAVA_HOME下可以找到一個叫作jre的文件夾,可是到JDK 13的時候剛纔也看了,哪裏有jre呢??

其實不用考慮這個問題,由於新版本的JDK不只附帶JRE,並且把JRE組件直接毀進JDK了,因此JRE_HOME能夠直接給成JAVA_HOME就能夠了。

所以咱們用VIM打開/etc/profile(由於是)進行編輯:

[root@localhost /usr/lib/jvm/jdk-13]$ vim /etc/profile

在這個文件開頭加入以下內容:

export JAVA_HOME=/usr/lib/jvm/jdk-13
export JRE_HOME=/${JAVA_HOME}
export CLASSPATH=.:${JAVA_HOME}/libss:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

而後:wq保存退出,不過由於只是寫在了文件裏,這些環境變量並無被實際的構建到內核中,所以須要手動執行一下這個文件。

[root@localhost /usr/lib/jvm/jdk-13]$ source /etc/profile
[root@localhost /usr/lib/jvm/jdk-13]$ exit #退出root權限

至此,安裝過程所有結束,JDK能夠正常工做了,咱們能夠用下面這個指令檢驗一下:

[user@localhost /usr/lib/jvm/jdk-13]$ java -version

如今咱們能夠在Linux系統上使用JDK13進行開發了。

既然裝好了,不妨咱們試一下吧!

說得對!!咱們已經摩拳擦掌了,那就編寫一個Java程序測試一下吧!
隨便在某個位置建個文件夾編寫一個Hello World試試看吧:

[user@localhost /usr/lib/jvm/jdk-13]$ mkdir ~/jsrc
[user@localhost /usr/lib/jvm/jdk-13]$ cd ~/jsrc
[user@localhost ~/jsrc]$ vim Hello.java
/// Hello.java

public class Hello
{
    public static void main(String args[])
    {
        System.out.println("Hello");
    }
}
[user@localhost ~/jsrc]$ javac Hello.java
[user@localhost ~/jsrc]$ ls
Hello.class    Hello.java
[user@localhost ~/jsrc]$ java Hello
Hello

Ah, finally ...
開心!!

固然,以後我還會一樣記錄Hadoop的安裝過程等等更多的東西,敬請關注!! 以上。

相關文章
相關標籤/搜索