linux環境變數之jdk+tomcat+maven__linux

來源:互聯網
上載者:User

這個是已經配置完成的環境變數截圖

作業環境:linux

一. java配置環境變數

為什麼要設定環境變數。原因很簡單:首先,java檔案要通過javac命令編譯產生.class檔案,這個編譯的命令在java的jdk裡面,想要執行它就必須知道它的存放路徑。第二,java檔案執行的是編譯後的.class檔案,因此必須知道編譯後的.class檔案放在了什麼地方。(執行用的是java命令,他和javac同在jdk裡面)。基於上面的兩個需要就必須配置環境變數。下面詳細說明:JAVA_HOME、PATH、CLASSPATH。(先概述再詳解)

  1. JAVA_HOME:它指向jdk的安裝目錄,Eclipse/NetBeans/Tomcat等軟體就是通過搜尋JAVA_HOME變數來找到並使用安裝好的jdk。

2. PATH:作用是指定命令搜尋路徑,在shell下面執行命令時它會到PATH變數所指定的路徑中尋找是否能找到相應的命令程式。我們需要把 jdk安裝目錄下的bin目錄增加到現有的PATH變數中,bin目錄中包含經常要用到的可執行檔如javac/java/javadoc等等,設定好 PATH變數後,就可以在任何目錄下執行javac/java等工具了。 

3. CLASSPATH:作用是指定類搜尋路徑,要使用已經編寫好的類,前提是能夠找到它們,JVM(java虛擬機器)就是通過CLASSPTH來尋找類的。我們需要把jdk安裝目錄下的lib子目錄中的dt.jar和tools.jar設定到CLASSPATH中,當然,目前的目錄“.”也必須加入到該變數中。 

注1:系統變數PATH是針對整個作業系統的,CLASSPATH是針對專門java的

注2:所謂的JVM就好像是在作業系統上面再啟用另外一個作業系統,對JVM來說CLASSPATH就好像是對作業系統來說的PATH,所以要用jvm開運行程式就需要設定classpath。

注3:CLASSPATH裡面該不該加rt.jar ,dt.jar ,tool.jar呢。
答:rt.jar是不需要的,jdk會自動載入。tools.jar和dt.jar為類庫路徑。如果不用Swing裡面的東西,可以不加dt.jar。 tools.jar裡面是最基本的工具類,比如javac,不加是無法做開發的。  

下面看一下伺服器上/etc/profile中設定的java環境變數


A.linux下用冒號“:”來分隔路徑 
B . export PATH中$PATH / $JAVA_HOME/$CATALINA_HOME 是用來引用原來的環境變數的值 
C . CLASSPATH中目前的目錄“.”不能丟

 

二.Tomcat是否配置環境變數(根據需要,個人覺得配不配置均可)

(以20伺服器上的/data/workspace_dubbo/tools/tomcat-rcservice為例,討論如何啟動tomcat)

01. 不配置環境變數

切換至/data/workspace_dubbo/tools/tomcatdubbo-tcservice/bin目錄下執行./catalina.sh run命令即可(在其他目錄下也可以,指出catalina.sh的位置即可)

02. 配置環境變數(在/etc/profile中配置)


在/etc/profile中配置了tomcat環境變數後,可以在任意目錄下執行catalina.shrun命令,無需指出catalina.sh的位置,因為環境變數中已配置。個人覺得配置環境變數這種方式比較適用於當前伺服器上只有一個tomca的情況。(若有多個tomcat,配置一個即可,其他不用配置)

 

Q1:為什麼01情況下輸入的命令是./catalina.sh run,02情況下輸入的命令是catalina.sh run?(.代表目前的目錄,..代表上一級目錄)

答:01是未設定環境變數的情況,啟動tomcat時必須告訴系統catalina.sh命令的位置,否則會系統找不到。切換至tomcatdubbo-tcservice/bin目錄下啟動tomcat,【./catalina.sh run】該命令中的./即是告訴系統catalina.sh的位置。也可以在任意目錄下啟動tomcat,同樣也要告訴系統catalina.sh的位置


02是設定環境變數的情況,在任意目錄下都可運行catalina.sh

Q2:/的作用

答:/ 為路徑分隔字元,
/ 這個符號在最前面代表根目錄的含義。比如 /boot,表示根目錄下的boot目錄,在後面則是目錄間的分隔字元

 

注1:export命令

功能說明:設定或顯示環境變數。

文法:export [-fnp][變數名稱]=[變數設定值]

補充說明:在shell中執行程式時,shell會提供一組環境變數。export可新增,修改或刪除環境變數,供後續執行的程式使用。export的效力僅及於該次登入操作。

參數:

-f 代表[變數名稱]中為函數名稱。

-n 刪除指定的變數。變數實際上並未刪除,只是不會輸出到後續指令的執行環境中。

-p 列出所有的shell賦予程式的環境變數。

export設定只對當前的bash登入session有效。可以把export命令放在 /etc/profile 裡面,登入後會執行該檔案裡面的命令,對所有使用者都有效。

Q3:為什麼在/etc/profile中設定了tomcat環境變數,儲存後在任意目錄執行catalina.sh run會提示

答:在/etc/profile中修改了環境變數不會立即生效:登入linux時會載入/etc/profile,登入之後再修改這個檔案不會再載入了。要想讓環境變數生效要麼重新登入要麼source一下使它立即生效。

Q4:TOMCAT_HOME和CATALINA_HOME

答:按照以前設定的環境變數來看,JAVA_HOME表示JDK的安裝目錄,那麼應該用TOMCAT_HOME來表示Tomcat的安裝目錄,可為什麼要使用CATALINA_HOME呢。實際上,在Tomcat 4以前,用的就是TOMCAT_HOME來表示Tomcat的安裝目錄,在Tomcat 4以後,採用了新的Servlet容器Catalina,所以環境變數的名字也改為了CATALINA_HOME。

Q5:環境變數區分大小寫嗎。

答:linux和windows下都不區分大小寫,已在linux下驗證

注2:source命令

修改了/etc/profile檔案,想讓它立刻生效,而不用重新登入,這時就想到用source命令,如:source /etc/profile
source命令:
source命令也稱為“點命令”,也就是一個點符號(.),是bash的內部命令。
功能:使Shell讀入指定的Shell程式檔案並依次執行檔案中的所有語句
source命令通常用於重新執行剛修改的初始設定檔案,使之立即生效,而不必登出並重新登入。
用法:source filename 或 . filename
source filename 與 sh filename 及./filename執行指令碼的區別在那裡呢。
1.當shell指令碼具有可執行許可權時,用sh filename與./filename執行指令碼是沒有區別的。./filename是因為目前的目錄沒有在PATH中,所有"."是用來表示目前的目錄的(同./catalina.sh run一樣,若沒有設定環境變數,一定要告訴系統它的位置)。
2.sh filename 重建立立一個子shell,在子shell中執行指令碼裡面的語句,該子shell繼承父shell的環境變數,但子shell建立的、改變的變數不會被帶回父shell,除非使用export。
3.source filename:這個命令其實只是簡單地讀取指令碼裡面的語句依次在當前shell裡面執行,沒有建立新的子shell。指令碼裡面所有建立、改變變數的語句都會儲存在當前shell裡面。


三.Maven配置環境變數

以20伺服器上/data/workspace_dubbo/tools/maven為例,若不配置環境變數,每次執行maven命令時都必須把該命令的路徑帶出來


為了方便操作,在/etc/profile中配置maven的環境變數

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.