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

当脚本运行到这里的时候,你须要输入rootpassword,注意三次password输入错误就不能获取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

版权声明:本文博主原创文章,博客,未经同意不得转载。

上一篇:Linux下一个简单sniffer的实现


下一篇:Memcahce(MC)系列(两)Linux下一个Memcache安装