預設是openjdk 1.7. 而hivedb 編譯貌似非1.5,不行,報/tmp/hivedb/hivedb-master/src/main/java/org/hivedb/meta/persistence/HiveBasicDataSource.java:[13,7] error: HiveBasicDataSource is not abstract and does not override abstract method getParentLogger() in CommonDataSource
首先確定是64位機器
uname -a
Linux cs-node1 2.6.32-279.el6.x86_64 #1 SMP Fri Jun 22 12:19:21 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase5-419410.html#jdk-1.5.0_22-oth-JPR
下載1.5jdk
開始下了jdk-1_5_0_22-linux-amd64-rpm.bin 別以為是amd的,就是要裝這個。jdk-1_5_0_22-linux-i586-rpm.bin 是32位的。
ftp上傳linux主機上,chmod 777 後直接執行
./jdk-1_5_0_22-linux-amd64-rpm.bin
出現licience許可,crl+c ,提升yes or no 敲yes。安裝
---------------------------
Unpacking...
Checksumming...
0
0
Extracting...
UnZipSFX 5.50 of 17 February 2002, by Info-ZIP (Zip-Bugs@lists.wku.edu).
inflating: jdk-1_5_0_22-linux-amd64.rpm
Preparing... ########################################### [100%]
1:jdk ########################################### [100%]
Done.
--
安裝成功,
查看安裝到哪裡了
find / -name java
/var/lib/alternatives/java
/root/.m2/repository/net/java
/root/.m2/repository_jw/net/java
/etc/pki/java
/etc/java
/etc/alternatives/java
/opt/continuent/releases/tungsten-enterprise-1.5.3-85_pid17929/tungsten-replicator/samples/extensions/java
/usr/lib/java
/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/bin/java
/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.3.x86_64/jre/bin/java
/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.3.x86_64/bin/java
/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre/bin/java
/usr/lib/jvm/java
/usr/lib/jvm-exports/java
/usr/java
/usr/java/jdk1.5.0_22/jre/bin/java
/usr/java/jdk1.5.0_22/bin/java
/usr/bin/java
/usr/share/java
/tmp/tungsten-enterprise-1.5.3-85/tungsten-replicator/samples/extensions/java
/tmp/hivedb/hivedb-master/src/test/java
/tmp/hivedb/hivedb-master/src/main/java
--
設定環境變數
vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.5.0_22
--
增加java 可執行檔選項,---設定預設選項
[root@cs-node1 java]# alternatives --install /usr/bin/java java /usr/java/jdk1.5.0_22/bin/java 60
[root@cs-node1 java]# alternatives --config java
There are 4 programs which provide 'java'.
Selection Command
-----------------------------------------------
1 /usr/lib/jvm/jre-1.5.0-gcj/bin/java
*+ 2 /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
3 /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
4 /usr/java/jdk1.5.0_22/bin/java
Enter to keep the current selection[+], or type selection number: 4
[root@cs-node1 java]# java -version
java version "1.5.0_22"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_22-b03)
Java HotSpot(TM) 64-Bit Server VM (build 1.5.0_22-b03, mixed mode)
--
至此,一些程式使用預設的jdk。還是用1.5.如hivedb編譯。重新開個ssh視窗,或者clone一個。才能真正使得新安裝的jdk生效。
疑問:alternatives --config java 選過了,是不是profile裡自動改過來呢? 沒試
參考http://www.linuxidc.com/Linux/2012-09/71358.htm,http://johnsz.blog.51cto.com/525379/694052