Linux如何查看JDK的安裝路徑

1 Linux 目錄結構

即使這是個菜鳥級的問題,也經常難住老鳥。我就見過很資深的程序員把JDK不合適地安裝到/home目錄下。雖然不一定有最正確的安裝位置,但一定有不適當的安裝位置。爲了確定我們到底應該把JDK安裝在哪裏,首先要了解一下Unix/Linux的目錄結構。
[plain] view plaincopy
  1. /bin 用來貯存用戶命令。/usr/bin 也被用來貯存用戶命令。  
  2.   
  3. /sbin 許多系統命令(例如 shutdown)的貯存位置。/usr/sbin 中也包括了許多系統命令。  
  4.   
  5. /root 根用戶(超級用戶)的主目錄。  
  6.   
  7. /mnt 該目錄中通常包括系統引導後被掛載的文件系統的掛載點。比如,默認的光盤掛載點是 /mnt/cdrom/。可以爲U盤建一個掛載點:mkdir /mnt/usb。  
  8.   
  9. /boot 包括內核和其它系統啓動期間使用的文件,最大不超過200M。通常我爲 /boot 建一個primary分區是1G。  
  10.   
  11. /lost+found 被 fsck 用來放置零散文件(沒有名稱的文件)。  
  12.   
  13. /lib 包含許多被 /bin 和 /sbin 中的程序使用的庫文件。目錄 /usr/lib 中含有更多用於用戶程序的庫文件。/lib 目錄下放置的是 /bin 和 /sbin 目錄下程序所需的庫文件。簡單說,/lib 是內核級的;/usr/lib 是系統級的;/usr/local/lib 是用戶級的。僅僅被 /usr 目錄下的程序所使用的共享庫不必放到 /lib 目錄下。只有 /bin 和 /sbin 下的程序所需要的庫有必要放到 /lib 目錄下。  
  14.   
  15. /dev 貯存設備文件。  
  16.   
  17. /etc 包含許多配置文件和目錄。  
  18.   
  19. /var 用於貯存variable(或不斷改變的)文件,例如日誌文件和打印機假脫機文件,虛擬機鏡像文件等。  
  20.   
  21. /usr 包括與系統用戶直接有關的文件和目錄,例如應用程序及支持它們的庫文件。  
  22.   
  23. /proc 一個虛擬的文件系統(不是實際貯存在磁盤上的),它包括被某些程序使用的系統信息。  
  24.   
  25. /initrd 用來在計算機啓動時掛載 initrd.img 映像文件的目錄以及載入所需設備模塊的目錄。不要刪除 /initrd 目錄。如果你刪除了該目錄後再重新引導 Red Hat Linux 時,你將無法引導你的計算機。  
  26.   
  27. /tmp 用戶和程序的臨時目錄。 /tmp 給予所有系統用戶讀寫權。  
  28.   
  29. /home 用戶主目錄的默認位置。  
  30.   
  31. /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 文件,執行下面的語句:

[plain] view plaincopy
  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, 如下:

[plain] view plaincopy
  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環境變量,並且一啓動就生效。強烈不建議這個方式,除非在你個人開發的計算機上。

[plain] view plaincopy
  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


如何在一臺Linux服務器上查找JDK的安裝路徑呢? 有那些方法可以查找定位JDK的安裝路徑?是否有一些侷限性呢? 下面總結了一下如何查找JDK安裝路徑的方法.

 

1:echo $JAVA_HOME

使用$JAVA_HOME的話能定位JDK的安裝路徑的前提是配置了環境變量$JAVA_HOME,否則如下所示,根本定位不到JDK的安裝路徑

[root@localhost ~]# java -version

java version "1.7.0_65"

OpenJDK Runtime Environment (rhel-2.5.1.2.el6_5-x86_64 u65-b17)

OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode)

[root@localhost ~]# echo $JAVA_HOME

clip_image001

 

2:which java

首先要申明一下which java是定位不到安裝路徑的。which java定位到的是java程序的執行路徑。網上的資料都是人云亦云,完全不去思考。那麼怎麼定位到java的安裝路徑呢?下面我們來看看例子吧,如下所示:

[root@localhost ~]# java -version
 
java version "1.7.0_65"
 
OpenJDK Runtime Environment (rhel-2.5.1.2.el6_5-x86_64 u65-b17)
 
OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode)
 
[root@localhost ~]# which java
 
/usr/bin/java
 
[root@localhost ~]# ls -lrt /usr/bin/java
 
lrwxrwxrwx. 1 root root 22 Aug 17 15:12 /usr/bin/java -> /etc/alternatives/java
 
[root@localhost ~]# ls -lrt /etc/alternatives/java
 
lrwxrwxrwx. 1 root root 46 Aug 17 15:12 /etc/alternatives/java -> /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
 
[root@localhost ~]# 
 
[root@localhost ~]# cd /usr/lib/jvm
 
[root@localhost jvm]# ls
 
java-1.6.0-openjdk-1.6.0.0.x86_64 java-1.7.0-openjdk-1.7.0.65.x86_64 jre jre-1.6.0 jre-1.6.0-openjdk.x86_64 jre-1.7.0 jre-1.7.0-openjdk.x86_64 jre-openjdk
 
[root@localhost jvm]# 

clip_image002

whereis java 也是如此,它本身不能定位到安裝路徑。可以通過上面例子去定位安裝路徑

clip_image003

 

3: rpm -ql packagename

如果JDK是源碼安裝的話,那麼這個方法也是行不通的。也就是說rpm –ql packagename也是有一定侷限性的。

[root@localhost ~]# java -version
java version "1.7.0_65"
OpenJDK Runtime Environment (rhel-2.5.1.2.el6_5-x86_64 u65-b17)
OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode)
[root@localhost ~]# rpm -qa | grep java
tzdata-java-2014g-1.el6.noarch
java-1.6.0-openjdk-1.6.0.0-11.1.13.4.el6.x86_64
java-1.7.0-openjdk-1.7.0.65-2.5.1.2.el6_5.x86_64
[root@localhost ~]# rpm -ql java-1.7.0-openjdk-1.7.0.65-2.5.1.2.el6_5.x86_64 | more
/etc/.java
/etc/.java/.systemPrefs
/usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64
/usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jaas-1.7.0.65.jar
/usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jaas-1.7.0.jar
/usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jaas.jar
/usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jce-1.7.0.65.jar
/usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jce-1.7.0.jar
/usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jce.jar
/usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jdbc-stdext-1.7.0.65.jar
/usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jdbc-stdext-1.7.0.jar
/usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jdbc-stdext-3.0.jar
/usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jdbc-stdext.jar
/usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jndi-1.7.0.65.jar
/usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jndi-1.7.0.jar
/usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jndi-cos-1.7.0.65.jar
/usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jndi-cos-1.7.0.jar
/usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jndi-cos.jar
/usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jndi-ldap-1.7.0.65.jar
/usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jndi-ldap-1.7.0.jar
/usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jndi-ldap.jar
/usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jndi-rmi-1.7.0.65.jar
/usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jndi-rmi-1.7.0.jar
/usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jndi-rmi.jar
/usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jndi.jar
/usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jsse-1.7.0.65.jar
/usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jsse-1.7.0.jar
/usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/jsse.jar
/usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/sasl-1.7.0.65.jar
/usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/sasl-1.7.0.jar
/usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.65.x86_64/sasl.jar
/usr/lib/jvm-exports/jre-1.7.0-openjdk.x86_64
/usr/lib/jvm-private/java-1.7.0-openjdk.x86_64
/usr/lib/jvm-private/java-1.7.0-openjdk.x86_64/jce
/usr/lib/jvm-private/java-1.7.0-openjdk.x86_64/jce/vanilla
/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64
/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64/ASSEMBLY_EXCEPTION
/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64/LICENSE
/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64/THIRD_PARTY_README
/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64/jre
/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64/jre/bin
/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64/jre/bin/java
/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64/jre/bin/keytool
/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64/jre/bin/orbd
/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64/jre/bin/pack200
/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64/jre/bin/policytool
/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64/jre/bin/rmid
/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64/jre/bin/rmiregistry
--More--

clip_image004

發佈了0 篇原創文章 · 獲贊 167 · 訪問量 118萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章