Linux JDK安装与配置

来源:互联网 发布:三星ml1641清零软件 编辑:程序博客网 时间:2024/06/05 18:51

终于决定换掉ubuntu,装了debian。还好是双系统,硬件驱动小费一点周折。不过debian的grub真是有点不好折腾,第一次把win8硬盘拿掉,然后通过update找不到win系统。第二次重装,安装的时候把win8识别成了vista,而且直接启动会先报一个参数缺少错误,然后点一下才能进。不过总算可以用了。ubuntu这点做的很好,可以借鉴一下,真的是识别和配置的很合理。

下面开始装jdk,自己用,暂时不会把项目搬到linux,直接安装最新的jdk8u20。

一、下载jdk和jre

在win下安装jdk会发现会同时让安装jre。原来jdk自带的jre基本上就是自己用的,是private属性的。而安装的这个jre则是共用的,所以安装的时候还是推荐安装的。因此设置路径的时候没有指定到jdk内的jre,也可以正常运行。

但是在debian里面,不打算自动安装openjdk,所以手动下载了jdk,同时叶下载了jre。准备好了,开始安装。

二、安装和配置jdk

其实安装很简单,就是把压缩包放开,配置一下环境变量。基本上操作一路是在终端里面进行的。

1.进入下载路径,用tar  -zxvf jdk1.8u20.tar.gz,将包解压到当前路径;

2.cd /opt;

3.sudo mv /path/to/jdk1.8u20 ./

4.sudo ln -s jdk1.8u20 jdk

注意:这一步不是必须的,但是为了方便升级,做了一个链接,以后如果需要更改jdk版本,直接改这个链接就ok。不然每次修改环境变量太麻烦。如果要在各种版本切换的建议也这样做。

OK,安装完成,下面开始配置。

5.环境变量的位置,Linux有好几个环境变量的文件,不同的文件有不同的用途,一般来说主要有~/.bashrc,~/.bashrc_profile,/etc/profile,/etc/bashrc,前面两个是用户级的配置,后面两个是系统级的配置,对所有用户都起作用。由于jdk环境变量是非登录的,所以配置bashrc就行了。反正是为了折腾,配置用户变量,如果以后添加用户,出了问题,就当长姿势了。

cd 

mousepad .bashrc

注意:我安装的是xfce,默认不带gedit,而是mousepad。具体的工具看发行版本。对vi的使用不是很顺手,直接简单来。

6.讲下面的变量添加到文件末尾

#set java environment
export JAVA_HOME=/opt/jdk
export JRE_HOME=/opt/jre
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JRE_HOME/bin:$JAVA_HOME/bin:$PATH

注意:这里应该澄清一个问题,网上大部分的CLASSPATH配置都有一个误区,指定好几个目录,而不是具体的jar文件。 CLASSPATH的配置只有当前目录“.”这一个目录,配置指向$JAVA_HOME/lib是没有实际作用的。因为要使用jar包中class的时候,只是指定到jar包所在的目录是没有用的,必须要指定到具体的jar文件。除非class文件直接以包文件夹的形式放到里面。这是我在做lucene的时候发现的。

这里给jre预先留了变量。等会儿直接安装文件就行了。

为了起作用,在shell中输入

7.安装jre

可以选择独立安装,过程与jdk类似。位置是/opt/jre。

我不想再安装jre,直接把jdk的jre引用过来。我对比了一下,好像jdk的jre比独立的jre少了一个man目录,而不出所料,这个man在jdk跟目录下。所以为了简单和节省,我决定对jdk的jre进行简单改造,直接使用。

cd /opt/jdk/jre

sudo ln -s ../man man

8.接下来,将这个jre做个符号链接即可。

cd /opt/

sudo ln -s jdk/jre jre

9.到此安装和配置结束,打开一个窗口,试一下java -version的经典魔咒吧。


三、设置系统默认java

1.查看默认java

update-alternatives --display java 

2. ls /etc/alternatives/ -all | grep java

发现有大量的链接是连向了openjdk,可以通过

sudo update-alternatives --config java、javac、javaws等修改默认java。

但是考虑以后更改jdk版本以后还得继续修改,我决定将所有的链接指向/opt/jdk。同时也可以看出开始设置软连接的用途,所有的指向连到这里,修改修改可以一键搞定。

先将要修改的目录做备份,然后进行修改。

写一个小脚本,内容如下:

rm /etc/alternatives/itweb-settings
rm /etc/alternatives/itweb-settings.1.gz
rm /etc/alternatives/java
rm /etc/alternatives/java.1.gz
rm /etc/alternatives/javaws
rm /etc/alternatives/javaws.1.gz
rm /etc/alternatives/jexec
rm /etc/alternatives/jexec-binfmt
rm /etc/alternatives/keytool
rm /etc/alternatives/keytool.1.gz
rm /etc/alternatives/orbd
rm /etc/alternatives/orbd.1.gz
rm /etc/alternatives/pack200
rm /etc/alternatives/pack200.1.gz
rm /etc/alternatives/policytool
rm /etc/alternatives/policytool.1.gz
rm /etc/alternatives/rmid
rm /etc/alternatives/rmid.1.gz
rm /etc/alternatives/rmiregistry
rm /etc/alternatives/rmiregistry.1.gz
rm /etc/alternatives/servertool
rm /etc/alternatives/servertool.1.gz
rm /etc/alternatives/tnameserv
rm /etc/alternatives/tnameserv.1.gz
rm /etc/alternatives/unpack200
rm /etc/alternatives/unpack200.1.gz


cd /etc/alternatives/


ln -s /opt/jre/bin/java java
ln -s /opt/jre/man/man1/java.1 java.1
ln -s /opt/jre/bin/javaws javaws
ln -s /opt/jre/man/man1/javaws.1 javaws.1
ln -s /opt/jre/lib/jexec jexec
ln -s /opt/jre/bin/keytool keytool
ln -s /opt/jre/man/man1/keytool.1 keytool.1
ln -s /opt/jre/bin/orbd orbd
ln -s /opt/jre/man/man1/orbd.1 orbd.1
ln -s /opt/jre/bin/pack200 pack200
ln -s /opt/jre/man/man1/pack200.1 pack200.1
ln -s /opt/jre/bin/policytool policytool
ln -s /opt/jre/man/man1/policytool.1 policytool.1
ln -s /opt/jre/bin/rmid rmid
ln -s /opt/jre/man/man1/rmid.1 rmid.1
ln -s /opt/jre/bin/rmiregistry rmiregistry
ln -s /opt/jre/man/man1/rmiregistry.1 rmiregistry.1
ln -s /opt/jre/bin/servertool servertool
ln -s /opt/jre/man/man1/servertool.1 servertool.1
ln -s /opt/jre/bin/tnameserv tnameserv
ln -s /opt/jre/man/man1/tnameserv.1 tnameserv.1
ln -s /opt/jre/bin/unpack200 unpack200
ln -s /opt/jre/man/man1/unpack200.1 unpack200.1


man链接修复:

rm /usr/share/man/man1/itweb-settings.1.gz
rm /usr/share/man/man1/java.1.gz
rm /usr/share/man/man1/javaws.1.gz
rm /usr/share/man/man1/keytool.1.gz
rm /usr/share/man/man1/orbd.1.gz
rm /usr/share/man/man1/pack200.1.gz
rm /usr/share/man/man1/policytool.1.gz
rm /usr/share/man/man1/rmid.1.gz
rm /usr/share/man/man1/rmiregistry.1.gz
rm /usr/share/man/man1/servertool.1.gz
rm /usr/share/man/man1/tnameserv.1.gz
rm /usr/share/man/man1/unpack200.1.gz

cd /usr/share/man/man1/


ln -s /opt/jre/man/man1/java.1 java.1.gz 
ln -s /opt/jre/man/man1/javaws.1 javaws.1.gz
ln -s /opt/jre/man/man1/keytool.1 keytool.1.gz
ln -s /opt/jre/man/man1/orbd.1 orbd.1.gz
ln -s /opt/jre/man/man1/pack200.1 pack200.1.gz
ln -s /opt/jre/man/man1/policytool.1 policytool.1.gz
ln -s /opt/jre/man/man1/rmid.1 rmid.1.gz
ln -s /opt/jre/man/man1/rmiregistry.1 rmiregistry.1.gz
ln -s /opt/jre/man/man1/servertool.1 servertool.1.gz
ln -s /opt/jre/man/man1/tnameserv.1 tnameserv.1.gz
ln -s /opt/jre/man/man1/unpack200.1 unpack200.1.gz


OK。搞定,去看看新特性。

0 0