1. 程式人生 > >Linux下JDK到底應該安裝在哪兒?

Linux下JDK到底應該安裝在哪兒?

最標準的jdk安裝路徑是

/usr/local/java/jdk1.6.0_38

/usr/local/java/jdk1.8.xxx

注意:幾個不同的jdk可以共存,都放在/usr/local/java/下

然後在/etc/profile裡面export JAVA_HOME指定預設的jdk

下面是分析過程

1 Linux 目錄結構

即使這是個菜鳥級的問題,也經常難住老鳥。我就見過很資深的程式設計師把JDK不合適地安裝到/home目錄下。雖然不一定有最正確的安裝位置,但一定有不適當的安裝位置。為了確定我們到底應該把JDK安裝在哪裡,首先要了解一下Unix/Linux的目錄結構。[plain] view plain

copy

  1. /bin 用來貯存使用者命令。/usr/bin 也被用來貯存使用者命令。  
  2. /sbin 許多系統命令(例如 shutdown)的貯存位置。/usr/sbin 中也包括了許多系統命令。  
  3. /root 根使用者(超級使用者)的主目錄。  
  4. /mnt 該目錄中通常包括系統引導後被掛載的檔案系統的掛載點。比如,預設的光碟掛載點是 /mnt/cdrom/。可以為U盤建一個掛載點:mkdir /mnt/usb。  
  5. /boot 包括核心和其它系統啟動期間使用的檔案,最大不超過200M。通常我為 /boot 建一個primary分割槽是1G。  
  6. /lost+found 被 fsck 用來放置零散檔案(沒有名稱的檔案)。  
  7. /lib 包含許多被 /bin 和 /sbin 中的程式使用的庫檔案。目錄 /usr/lib 中含有更多用於使用者程式的庫檔案。/lib 目錄下放置的是 /bin 和 /sbin 目錄下程式所需的庫檔案。簡單說,/lib 是核心級的;/usr/lib 是系統級的;/usr/local/lib 是使用者級的。僅僅被 /usr 目錄下的程式所使用的共享庫不必放到 /lib 目錄下。只有 /bin 和 /sbin 下的程式所需要的庫有必要放到 /lib 目錄下。  
  8. /dev 貯存裝置檔案。  
  9. /etc 包含許多配置檔案和目錄。  
  10. /var 用於貯存variable(或不斷改變的)檔案,例如日誌檔案和印表機假離線檔案,虛擬機器映象檔案等。  
  11. /usr 包括與系統使用者直接有關的檔案和目錄,例如應用程式及支援它們的庫檔案。  
  12. /proc 一個虛擬的檔案系統(不是實際貯存在磁碟上的),它包括被某些程式使用的系統資訊。  
  13. /initrd 用來在計算機啟動時掛載 initrd.img 映像檔案的目錄以及載入所需裝置模組的目錄。不要刪除 /initrd 目錄。如果你刪除了該目錄後再重新引導 Red Hat Linux 時,你將無法引導你的計算機。  
  14. /tmp 使用者和程式的臨時目錄。 /tmp 給予所有系統使用者讀寫權。  
  15. /home 使用者主目錄的預設位置。  
  16. /opt 可選檔案和程式的貯存目錄。該目錄主要被第三方開發者用來簡易地安裝和卸裝他們的軟體包。  

在傳統的unix系統中,/usr 通常只包含系統發行時自帶的程式,而/usr/local 則是本地系統管理員用來自由新增程式的目錄。這裡有一條嚴厲而牢固的規則:除非在裡面建立目錄,unix發行版不得使用 /usr/local 。

對於Linux發行版,如 RedHat, Debian 等等,一個可能的規定是:/usr 目錄只能由發行版的軟體包管理工具負責管理,而對 /usr/local 卻沒有這樣做。正是因為採用這種方式,軟體包管理工具的資料庫才能知道在 /usr 目錄內的每一個檔案。

2配置環境JAVA變數

有3種方式配置Java環境變數。

2.1/etc/profile

如果你的計算機僅僅作為開發使用時推薦使用這種方法.所有使用者的shell都有權使用這些環境變數。修改/etc/profile 檔案,執行下面的語句:

  1. $ sudo -s  
  2. # echo 'export JAVA_HOME=/usr/local/java/jdk1.6.0_38' >> /etc/profile  
  3. # echo 'export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH' >> /etc/profile  
  4. # echo 'export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar' >> /etc/profile  

切換到任何一個使用者,執行下面這個命令,環境變數的更改立即生效:

# source /etc/profile

檢查JAVA環境變數更改是否生效:

$ java -version

2.2 ~/.profile

這個是最安全的方法,控制JAVA到當前使用者。如果你需要給某個使用者許可權使用這些環境變數,你只需要修改其個人使用者主目錄下的 .profile, 如下:

  1. $ cd ~/  
  2. $ echo 'export JAVA_HOME=/usr/local/java/jdk1.6.0_38' >> ./.profile  
  3. $ echo 'export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH' >> ./.profile  
  4. $ echo 'export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar' >> ./.profile  
  5. $ source ./.profile  
  6. $ java -version  
  7. or  
  8. $ java  

2.3 /etc/profile.d/java.sh

這種方式為所有使用者增加JAVA環境變數,並且一啟動就生效。強烈不建議這個方式,除非在你個人開發的計算機上。

  1. $ sudo -s  
  2. # echo '# add java environments to all users' > /etc/profile.d/java.sh  
  3. # chmod 755 /etc/profile.d/java.sh  
  4. # echo 'export JAVA_HOME=/usr/local/java/jdk1.6.0_38' >> /etc/profile.d/java.sh  
  5. # echo 'export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH' >> /etc/profile.d/java.sh  
  6. # echo 'export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar' >> /etc/profile.d/java.sh  
  7. # shutdown -r now  

轉自:  http://blog.csdn.net/cheungmine/article/details/8289335