14行脚本配置Linux下Java环境变量

对于Java初学者而言,可能在Java开发环境的配置上要花一番功夫,而在Linux下,配置Java的环境变量,这个功夫可能又会增加。为此,我编了一个bash脚本来实现自动配置Java的环境变量。你只需要将如下脚本和你下载的jdk压缩包放到一个文件夹下,执行该脚本,并依据提示输入一些信息即可。

config_java.sh

#!/bin/bash
jdkpath=/usr/lib/java/
sudo mkdir $jdkpath
read -p "Please input the name of JDK file you downloaded: " jdkfile
sudo cp $jdkfile $jdkpath
cd $jdkpath
sudo tar xvf $jdkfile
sudo rm $jdkfile
dirname=`ls`
cd ~
echo "export JAVA_HOME=$jdkpath$dirname">>.bashrc
echo "export PATH=\$PATH:\$JAVA_HOME/bin:\$JAVA_HOME/jre/bin">>.bashrc
echo "export CLASSPATH=.:\$JAVA_HOME/lib:\$JAVA_HOME/jre/lib">>.bashrc
. .bashrc
从头开始看
变量jdkpath指明了java的安装路径,这个路径不唯一,基本上在目录/usr/lib下新建一个用于存放jdk的目录即可。一般取名为java,jvm等等。
sudo mkdir $jdkpath
因为在根目录下新建目录需要root权限,所以这里加了 sudo。当脚本执行到这里的时候,你需要输入root密码,注意三次密码输入错误就不能获取root权限了。

read -p "Please input the name of JDK file you downloaded: " jdkfile
这一行,根据提示你要输入你下载的jdk压缩文件的名字。比如 jdk-8u5-linux-x64.tar.gz

接下来的事,你就不用管了。

sudo cp $jdkfile $jdkpath
cd $jdkpath
将jdk压缩包复制到 /usr/lib/java/ 下。并切换到该目录下。

sudo tar xvf $jdkfile
sudo rm $jdkfile
解压jdk压缩文件,此时会提取出一个jdk的目录,比如 jdk1.8.0_05 ,接着在解压后删除掉原来的压缩包。

dirname=`ls`
这条语句定义了一个变量dirname,并初始化为 生成的jdk目录的名字。

`ls` 这是shell脚本中变量初始化的一种方式。ls这条命令应该都比较熟悉,会输出当前目录下的文件(包括普通文件和目录文件)名。

注意包围 ls 的不是引号,而是键盘上数字1左边的符号。这样变量dirname就会初始化为 ls 的输出信息,也就是jdk目录的名字。比如可能为dirname=jdk1.8.0_05。

echo "export JAVA_HOME=$jdkpath$dirname">>.bashrc
echo "export PATH=\$PATH:\$JAVA_HOME/bin:\$JAVA_HOME/jre/bin">>.bashrc
echo "export CLASSPATH=.:\$JAVA_HOME/lib:\$JAVA_HOME/jre/lib">>.bashrc
这三条语句,就是Java环境变量的具体配置了。新建了一个系统变量JAVA_HOME,目的是防止硬编码。修改(若没有该变量则为新建)了系统变量PATH,和CLASSPATH。

其实配置JAVA环境变量可供修改的文件有三个:

 /etc/profile       修改全局变量,会对所用用户,所有的shell生效。不推荐
 ~/.bashrc         只修改当前用户的bash shell配置。
 ~/.bashrc_profile 效果同上
修改一个就行。

. .bashrc
这条语句就是使修改的 .bashrc 文件立即生效。否则需要在重启后才生效。

>>>为了更加方便大家,大家可以在终端中切换到 jdk压缩包所在目录之后,键入如下命令,即可自动下载这个脚本并自动开始配置。

wget https://raw.github.com/guodongxiaren/practicalscripts/master/config_java.sh && bash config_java.sh


转载于:https://www.cnblogs.com/unclejelly/p/4082070.html

你可能感兴趣的:(14行脚本配置Linux下Java环境变量)