对于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从头开始看
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