在Oracle買下Sun之後,Ubuntu上要安裝sun/oracle的JDK是愈來愈不容易...
還是做個筆記囉
安裝Sun JDK6
sudo add-apt-repository ppa:flexiondotorg/java sudo apt-get update sudo apt-get install sun-java6-jdk sun-java6-plugin sun-java6-fonts
安裝Oracle JDK7
這部份主要是參考Intalling Java 7 on Ubuntu Natty (11.04)
- 請至Oracle http://www.oracle.com/technetwork/java/javase/downloads/index.html Download最新的檔案,要注意配合作業系統。下列的例子以x64為主。
- 解壓縮後移到/usr/lib/jvm裡,並重新命名為java-7-oracle-1.7.0_02,再修改owner為root,最後建一個名為java-7-oracle的link,這樣以後若有新的版本,就只要修改link即可。
tar -xzf jdk-7u2-linux-x64.tar.gz sudo mv jdk1.7.0_02 /usr/lib/jvm/java-7-oracle-1.7.0_02 cd /usr/lib/jvm sudo chown -R root:root java-7-oracle-1.7.0_02 sudo ln -s java-7-oracle-1.7.0_02 java-7-oracle
- 以root的身份執行下列的指令,若不想一直下sudo,就先執行sudo -sH來切換身份吧
update-alternatives --quiet --install /usr/lib/xulrunner-addons/plugins/libjavaplugin.so xulrunner-1.9-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so 63 update-alternatives --quiet --install /usr/lib/mozilla/plugins/libjavaplugin.so mozilla-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so 63 update-alternatives --quiet --install /usr/bin/appletviewer appletviewer /usr/lib/jvm/java-7-oracle/bin/appletviewer 63 --slave /usr/share/man/man1/appletviewer.1 appletviewer.1 /usr/lib/jvm/java-7-oracle/man/man1/appletviewer.1 update-alternatives --quiet --install /usr/bin/apt apt /usr/lib/jvm/java-7-oracle/bin/apt 63 --slave /usr/share/man/man1/apt.1 apt.1 /usr/lib/jvm/java-7-oracle/man/man1/apt.1 update-alternatives --quiet --install /usr/bin/extcheck extcheck /usr/lib/jvm/java-7-oracle/bin/extcheck 63 --slave /usr/share/man/man1/extcheck.1 extcheck.1 /usr/lib/jvm/java-7-oracle/man/man1/extcheck.1 update-alternatives --quiet --install /usr/bin/idlj idlj /usr/lib/jvm/java-7-oracle/bin/idlj 63 --slave /usr/share/man/man1/idlj.1 idlj.1 /usr/lib/jvm/java-7-oracle/man/man1/idlj.1 update-alternatives --quiet --install /usr/bin/jar jar /usr/lib/jvm/java-7-oracle/bin/jar 63 --slave /usr/share/man/man1/jar.1 jar.1 /usr/lib/jvm/java-7-oracle/man/man1/jar.1 update-alternatives --quiet --install /usr/bin/jarsigner jarsigner /usr/lib/jvm/java-7-oracle/bin/jarsigner 63 --slave /usr/share/man/man1/jarsigner.1 jarsigner.1 /usr/lib/jvm/java-7-oracle/man/man1/jarsigner.1 update-alternatives --quiet --install /usr/bin/javac javac /usr/lib/jvm/java-7-oracle/bin/javac 63 --slave /usr/share/man/man1/javac.1 javac.1 /usr/lib/jvm/java-7-oracle/man/man1/javac.1 update-alternatives --quiet --install /usr/bin/javadoc javadoc /usr/lib/jvm/java-7-oracle/bin/javadoc 63 --slave /usr/share/man/man1/javadoc.1 javadoc.1 /usr/lib/jvm/java-7-oracle/man/man1/javadoc.1 update-alternatives --quiet --install /usr/bin/javah javah /usr/lib/jvm/java-7-oracle/bin/javah 63 --slave /usr/share/man/man1/javah.1 javah.1 /usr/lib/jvm/java-7-oracle/man/man1/javah.1 update-alternatives --quiet --install /usr/bin/javap javap /usr/lib/jvm/java-7-oracle/bin/javap 63 --slave /usr/share/man/man1/javap.1 javap.1 /usr/lib/jvm/java-7-oracle/man/man1/javap.1 update-alternatives --quiet --install /usr/bin/jconsole jconsole /usr/lib/jvm/java-7-oracle/bin/jconsole 63 --slave /usr/share/man/man1/jconsole.1 jconsole.1 /usr/lib/jvm/java-7-oracle/man/man1/jconsole.1 update-alternatives --quiet --install /usr/bin/jdb jdb /usr/lib/jvm/java-7-oracle/bin/jdb 63 --slave /usr/share/man/man1/jdb.1 jdb.1 /usr/lib/jvm/java-7-oracle/man/man1/jdb.1 update-alternatives --quiet --install /usr/bin/jhat jhat /usr/lib/jvm/java-7-oracle/bin/jhat 63 --slave /usr/share/man/man1/jhat.1 jhat.1 /usr/lib/jvm/java-7-oracle/man/man1/jhat.1 update-alternatives --quiet --install /usr/bin/jinfo jinfo /usr/lib/jvm/java-7-oracle/bin/jinfo 63 --slave /usr/share/man/man1/jinfo.1 jinfo.1 /usr/lib/jvm/java-7-oracle/man/man1/jinfo.1 update-alternatives --quiet --install /usr/bin/jmap jmap /usr/lib/jvm/java-7-oracle/bin/jmap 63 --slave /usr/share/man/man1/jmap.1 jmap.1 /usr/lib/jvm/java-7-oracle/man/man1/jmap.1 update-alternatives --quiet --install /usr/bin/jps jps /usr/lib/jvm/java-7-oracle/bin/jps 63 --slave /usr/share/man/man1/jps.1 jps.1 /usr/lib/jvm/java-7-oracle/man/man1/jps.1 update-alternatives --quiet --install /usr/bin/jrunscript jrunscript /usr/lib/jvm/java-7-oracle/bin/jrunscript 63 --slave /usr/share/man/man1/jrunscript.1 jrunscript.1 /usr/lib/jvm/java-7-oracle/man/man1/jrunscript.1 update-alternatives --quiet --install /usr/bin/jsadebugd jsadebugd /usr/lib/jvm/java-7-oracle/bin/jsadebugd 63 --slave /usr/share/man/man1/jsadebugd.1 jsadebugd.1 /usr/lib/jvm/java-7-oracle/man/man1/jsadebugd.1 update-alternatives --quiet --install /usr/bin/jstack jstack /usr/lib/jvm/java-7-oracle/bin/jstack 63 --slave /usr/share/man/man1/jstack.1 jstack.1 /usr/lib/jvm/java-7-oracle/man/man1/jstack.1 update-alternatives --quiet --install /usr/bin/jstat jstat /usr/lib/jvm/java-7-oracle/bin/jstat 63 --slave /usr/share/man/man1/jstat.1 jstat.1 /usr/lib/jvm/java-7-oracle/man/man1/jstat.1 update-alternatives --quiet --install /usr/bin/jstatd jstatd /usr/lib/jvm/java-7-oracle/bin/jstatd 63 --slave /usr/share/man/man1/jstatd.1 jstatd.1 /usr/lib/jvm/java-7-oracle/man/man1/jstatd.1 update-alternatives --quiet --install /usr/bin/native2ascii native2ascii /usr/lib/jvm/java-7-oracle/bin/native2ascii 63 --slave /usr/share/man/man1/native2ascii.1 native2ascii.1 /usr/lib/jvm/java-7-oracle/man/man1/native2ascii.1 update-alternatives --quiet --install /usr/bin/rmic rmic /usr/lib/jvm/java-7-oracle/bin/rmic 63 --slave /usr/share/man/man1/rmic.1 rmic.1 /usr/lib/jvm/java-7-oracle/man/man1/rmic.1 update-alternatives --quiet --install /usr/bin/schemagen schemagen /usr/lib/jvm/java-7-oracle/bin/schemagen 63 --slave /usr/share/man/man1/schemagen.1 schemagen.1 /usr/lib/jvm/java-7-oracle/man/man1/schemagen.1 update-alternatives --quiet --install /usr/bin/serialver serialver /usr/lib/jvm/java-7-oracle/bin/serialver 63 --slave /usr/share/man/man1/serialver.1 serialver.1 /usr/lib/jvm/java-7-oracle/man/man1/serialver.1 update-alternatives --quiet --install /usr/bin/wsgen wsgen /usr/lib/jvm/java-7-oracle/bin/wsgen 63 --slave /usr/share/man/man1/wsgen.1 wsgen.1 /usr/lib/jvm/java-7-oracle/man/man1/wsgen.1 update-alternatives --quiet --install /usr/bin/wsimport wsimport /usr/lib/jvm/java-7-oracle/bin/wsimport 63 --slave /usr/share/man/man1/wsimport.1 wsimport.1 /usr/lib/jvm/java-7-oracle/man/man1/wsimport.1 update-alternatives --quiet --install /usr/bin/xjc xjc /usr/lib/jvm/java-7-oracle/bin/xjc 63 --slave /usr/share/man/man1/xjc.1 xjc.1 /usr/lib/jvm/java-7-oracle/man/man1/xjc.1 update-alternatives --quiet --install /usr/bin/java-rmi.cgi java-rmi.cgi /usr/lib/jvm/java-7-oracle/bin/java-rmi.cgi 63 update-alternatives --quiet --install /usr/bin/ControlPanel ControlPanel /usr/lib/jvm/java-7-oracle/jre/bin/ControlPanel 63 update-alternatives --quiet --install /usr/bin/java java /usr/lib/jvm/java-7-oracle/jre/bin/java 63 update-alternatives --quiet --install /usr/bin/java_vm java_vm /usr/lib/jvm/java-7-oracle/jre/bin/java_vm 63 update-alternatives --quiet --install /usr/bin/javaws javaws /usr/lib/jvm/java-7-oracle/jre/bin/javaws 63 update-alternatives --quiet --install /usr/bin/jcontrol jcontrol /usr/lib/jvm/java-7-oracle/jre/bin/jcontrol 63 update-alternatives --quiet --install /usr/bin/keytool keytool /usr/lib/jvm/java-7-oracle/jre/bin/keytool 63 update-alternatives --quiet --install /usr/bin/pack200 pack200 /usr/lib/jvm/java-7-oracle/jre/bin/pack200 63 update-alternatives --quiet --install /usr/bin/policytool policytool /usr/lib/jvm/java-7-oracle/jre/bin/policytool 63 update-alternatives --quiet --install /usr/bin/rmid rmid /usr/lib/jvm/java-7-oracle/jre/bin/rmid 63 update-alternatives --quiet --install /usr/bin/rmiregistry rmiregistry /usr/lib/jvm/java-7-oracle/jre/bin/rmiregistry 63 update-alternatives --quiet --install /usr/bin/unpack200 unpack200 /usr/lib/jvm/java-7-oracle/jre/bin/unpack200 63 update-alternatives --quiet --install /usr/bin/orbd orbd /usr/lib/jvm/java-7-oracle/jre/bin/orbd 63 update-alternatives --quiet --install /usr/bin/servertool servertool /usr/lib/jvm/java-7-oracle/jre/bin/servertool 63 update-alternatives --quiet --install /usr/bin/tnameserv tnameserv /usr/lib/jvm/java-7-oracle/jre/bin/tnameserv 63 update-alternatives --quiet --install /usr/bin/jexec jexec /usr/lib/jvm/java-7-oracle/jre/lib/jexec 63
- 在/usr/lib/jvm建一份.java-7-oracle.jinfo的清單,請注意這是個隱藏檔,所以檔名是有個'.'
sudo vim /usr/lib/jvm/.java-7-oracle.jinfo
內容則如下name=java-7-oracle alias=java-7-oracle priority=63 section=non-free jre ControlPanel /usr/lib/jvm/java-7-oracle/jre/bin/ControlPanel jre java /usr/lib/jvm/java-7-oracle/jre/bin/java jre java_vm /usr/lib/jvm/java-7-oracle/jre/bin/java_vm jre javaws /usr/lib/jvm/java-7-oracle/jre/bin/javaws jre jcontrol /usr/lib/jvm/java-7-oracle/jre/bin/jcontrol jre keytool /usr/lib/jvm/java-7-oracle/jre/bin/keytool jre pack200 /usr/lib/jvm/java-7-oracle/jre/bin/pack200 jre policytool /usr/lib/jvm/java-7-oracle/jre/bin/policytool jre rmid /usr/lib/jvm/java-7-oracle/jre/bin/rmid jre rmiregistry /usr/lib/jvm/java-7-oracle/jre/bin/rmiregistry jre unpack200 /usr/lib/jvm/java-7-oracle/jre/bin/unpack200 jre orbd /usr/lib/jvm/java-7-oracle/jre/bin/orbd jre servertool /usr/lib/jvm/java-7-oracle/jre/bin/servertool jre tnameserv /usr/lib/jvm/java-7-oracle/jre/bin/tnameserv jre jexec /usr/lib/jvm/java-7-oracle/jre/lib/jexec jdk appletviewer /usr/lib/jvm/java-7-oracle/bin/appletviewer jdk apt /usr/lib/jvm/java-7-oracle/bin/apt jdk extcheck /usr/lib/jvm/java-7-oracle/bin/extcheck jdk idlj /usr/lib/jvm/java-7-oracle/bin/idlj jdk jar /usr/lib/jvm/java-7-oracle/bin/jar jdk jarsigner /usr/lib/jvm/java-7-oracle/bin/jarsigner jdk java-rmi.cgi /usr/lib/jvm/java-7-oracle/bin/java-rmi.cgi jdk javac /usr/lib/jvm/java-7-oracle/bin/javac jdk javadoc /usr/lib/jvm/java-7-oracle/bin/javadoc jdk javah /usr/lib/jvm/java-7-oracle/bin/javah jdk javap /usr/lib/jvm/java-7-oracle/bin/javap jdk jconsole /usr/lib/jvm/java-7-oracle/bin/jconsole jdk jdb /usr/lib/jvm/java-7-oracle/bin/jdb jdk jhat /usr/lib/jvm/java-7-oracle/bin/jhat jdk jinfo /usr/lib/jvm/java-7-oracle/bin/jinfo jdk jmap /usr/lib/jvm/java-7-oracle/bin/jmap jdk jps /usr/lib/jvm/java-7-oracle/bin/jps jdk jrunscript /usr/lib/jvm/java-7-oracle/bin/jrunscript jdk jsadebugd /usr/lib/jvm/java-7-oracle/bin/jsadebugd jdk jstack /usr/lib/jvm/java-7-oracle/bin/jstack jdk jstat /usr/lib/jvm/java-7-oracle/bin/jstat jdk jstatd /usr/lib/jvm/java-7-oracle/bin/jstatd jdk native2ascii /usr/lib/jvm/java-7-oracle/bin/native2ascii jdk rmic /usr/lib/jvm/java-7-oracle/bin/rmic jdk schemagen /usr/lib/jvm/java-7-oracle/bin/schemagen jdk serialver /usr/lib/jvm/java-7-oracle/bin/serialver jdk wsgen /usr/lib/jvm/java-7-oracle/bin/wsgen jdk wsimport /usr/lib/jvm/java-7-oracle/bin/wsimport jdk xjc /usr/lib/jvm/java-7-oracle/bin/xjc plugin xulrunner-1.9-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so plugin mozilla-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so
- update java alternatives
這時準備工作就完成了,可以開始設定ubuntu預設使用的jdk了
先執行下列指令
sudo update-alternatives --config java
正常的話可以看到下列的提示There are 2 choices for the alternative java (providing /usr/bin/java). Selection Path Priority Status ------------------------------------------------------------ * 0 /usr/lib/jvm/java-6-sun/jre/bin/java 63 auto mode 1 /usr/lib/jvm/java-6-sun/jre/bin/java 63 manual mode 2 /usr/lib/jvm/java-7-oracle/jre/bin/java 63 manual mode
此刻再輸入號碼2,選擇jdk7做為預設的java版本
當然也可以直接執行下列指令來改改sudo update-java-alternatives --set java-7-oracle