在linux下配置jdk也是搞得我一头雾水啊,刚刚接触linux,总是处处碰壁,不过学了很多东西。下面就来分享一下我安装的过程吧,也提供给刚入门linux的童鞋参考一下。之前是已经装过,可是出现问题,就中途放弃了,改用gcj,可是gcj真的是不好用,就想说卸载,网上查的方法都试过了就是卸载不了,无语。所以打算直接下载一个覆盖了他。(后来删除是直接用rm -f /usr/bin/java这个方法直接删了指令,效果还是有的,所以就直接可以装新的)
以下步骤请全程用用户下进行不要进入root下
1.先去Oracle官网下载java的jdk,版本自选吧,我选的是jdk7。要看清楚自己的系统是几位的,别下载错了,查看几位的方法是uname -a ,就可以看到是几位的系统了。接着有两个下载的文件,一个是rpm的,一个是tar.gz的,任选吧。建议下载tar.gz。等待下载完。
2.(1)如果下载的是tar.gz则解压文件到/usr/lib下
sudo tar zxvf jdk-7u79-linux-i586.tar.gz -C /usr/lib重命名文件夹jdk7
cd /usr/lib
sudo mv jdk1.7.0_79 jdk7
(2如果下载的是rpm的,可以现在根目录下的usr文件夹中建立一个java文件夹,方便存放jdk文件夹。先将它转为deb文件(软件包)再进行安装,命令如下,解压什么的时候记得耐心等待,别着急
//如果没有使用过alien这个命令就先安装
sudo apt-get install alien
//这时候解压出deb文件
sudo alien XXXX.rpm
//安装deb文件
sudo dpkg -i xxxxx.deb
搞定之后和上述一样,移动到/usr/lib下,改名位jdk7,要在安装的那个目录下哦
sudo mv jdk1.7.0_79 /usr/lib /jdk7
3.配置环境变量
gedit ~/.bashrc在文档的最后增加下面几句
export JAVA_HOME=/usr/lib/jdk7最后保存关闭,使命令生效,语句如下
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH
source ~/.bashrc
4.这时候算是装完了,输入java-version试一下,到这里成功的就不用继续看了。不成功就继续看吧。
竟然是出现下面的,也就是gcj。
java version "1.5.0"
gij (GNU libgcj) version 4.8.2
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
上网查了一下,用which java查到这个命令的源头/usr/bin/java,于是乎屁颠屁颠去到目标位置已查看
lrwxrwxrwx 1 root root 22 4月 2 17:43 /usr/bin/java -> /etc/alternatives/java
原来是这个家伙搞的鬼alternatives->这个是因为系统中有多个可以选择的命令,他就进行一个默认的选择。这时我们只要修改它的指向即可,但是要注意的是,如果alternatives用不了,就用update-alternatives代替,是一样的效果的,来试一下换指向,命令如下
update-alternatives --install /usr/bin/java java /usr/java/jdk1.7.0_79/bin/java 300
update-alternatives --config java
这时候出现一下表格,直接选择就好了。
选择 路径 优先级 状态
------------------------------------------------------------
* 0 /usr/bin/gij-4.8 1048 自动模式
1 /usr/bin/gij-4.8 1048 手动模式
2 /usr/java/jdk1.7.0_79/bin/java 300 手动模式
4.这个是rpm的时候出现的问题,试一次java-version,变成下面那样了,无语了
Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object
原来这个问题是在安装deb文件的时候,里面有两个重要文件没解压,一个是lib下的tools.pack,一个是jre/lib下的rt.pack。利用命令unpack200 XXX.pack XXX.jar就可以将它们转换成tools.jar和rt.jar这样就大功告成,这里有一个问题就是unpack200找不到命令,这时去到jdk文件下的bin中可以看到这个指令,用全路径去执行它就可以了。
再试一次
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) Server VM (build 24.79-b02, mixed mode)
大功告成!