centos 下安裝jdk8

今天在自己的centos機子上安裝jdk,發現以前的教程都比較舊了,很多東西都過時了。今天把自己安裝的感受寫一下。

判斷是否安裝

首先,我們得判斷機子上是不是安裝了jdk,好多人推薦使用java -version命令。我的計算機上使用java -version命令,內容如下:

java version "1.7.0_45"
OpenJDK Runtime Environment (rhel-2.4.3.2.el6_4-i386 u45-b15)
OpenJDK Server VM (build 24.45-b08, mixed mode)

這看起來好像我的機子中已經安裝了jdk,但是當我使用javac時,會提示:

-bash: javac: command not found

這說明第一個java命令,不是安裝的jdk中的java命令,而是在$PATH的所有路徑下有一個可以執行的java文件,說明jdk還是沒有正確安裝。這個要特別注意。

安裝jdk

  1. http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html中下載jdk的安裝文件。由於我的Linux是32位的,因此我下載jdk-8u25-linux-i586.tar.gz文件。

  2. 新建/usr/java文件夾,將jdk-8u25-linux-i586.tar.gz放到該文件夾中,並將工作目錄切換到/usr/java目錄下。

  3. 執行命令tar -zxvf jdk-8u25-linux-i586.gz 進行解壓,解壓後發現/usr/java多了一個jdk1.8.0_25文件夾。

  4. 通過以上步驟,jdk就已經全部安裝完成了。下面,就是環境變量的配置。

 

配置環境變量

  1. 使用vim /etc/profile編輯profile文件

  2. 在/etc/profile底部加入如下內容

    JAVA_HOME=/usr/java/jdk1.8.0_25
    PATH=$JAVA_HOME/bin:$PATH
    CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar
    export PATH JAVA_HOME CLASSPATH

  3. 以上,環境變量配置完成。需要注意的是,PATH在配置的時候,一定要把$JAVA_HOME/bin放在前面,不然使用java命令時,系統會找到以前的java,再不往下找了。這樣java這個可執行文件運行的目錄其實不在$JAVA_HOME/bin下,而在其它目錄下,會造成很大的問題。

  4. 還要注意,以前其它教程寫的CLASSPATH=$JAVA_HOME/lib.tools.jar,不知道以前的版本是怎麼樣的,現在的版本是沒有這樣的jar包的

  5. 最後使用source /etc/profile讓profile文件立即生效。

命令測試

  1. 使用javac命令,不會出現command not found錯誤

  2. 使用java -version,出現版本爲java version "1.8.0_25"

  3. echo $JAVA_HOME, echo $CLASSPATH, echo $PATH,看看自己的配置是否都正確。

代碼測試

在自己的工作目錄下創建一個新文件Hello.java,寫入如下內容:

public class Hello{     public static void main(String[] args){
         System.out.println("Hello World");
     }
 }

執行命令如下,如果得到以下結果,說明jdk安裝完成。

[gqq@pku ~/JavaProjects/test]$ javac Hello.java
[gqq@pku ~/JavaProjects/test]$ java -cp . Hello
Hello World

當然,我們安裝的jdk8,應該測試下jdk8的特性。可以使用jdk8特有的stream來測試,代碼如下:

複製代碼

import java.util.Arrays;import java.util.Iterator;import java.util.List;import java.util.function.Consumer;import java.util.function.Function;import java.util.function.Predicate;public class TestLambda1 {    public static void main(String[] args) {    
        // Aggregate Operations
        List<String> myList = Arrays.asList("zhangsan", "lisi", "wangwu",                "liuliu");
        myList.stream().filter(x -> x.contains("a")).map(x -> x.toUpperCase())
                .forEach(x -> System.out.println(x));
    }
}

複製代碼

使用以下命令運行,得到結果,說明安裝沒有問題。

[gqq@pku ~/JavaProjects/test]$ javac TestLambda.java 
[gqq@pku ~/JavaProjects/test]$ java -cp . TestLambda
ZHANGSAN
WANGWU


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章