Ubuntu操作系统下如何手动安装JDK1.7呢?本文是我经历的全过程。
Ubuntu版本:12.04 LTS
JDK版本:1.7.0_04
安装目录:/usr/local/development/jdk1.7.0_04
安装JDK1.7的过程
1. 打开网址http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u4-downloads-1591156.html,下载相应的JDK文件。
2. 将下载的文件解压缩到/usr/local/development/jdk1.7.0_04目录。
3. 创建文件/etc/profile.d/development.sh,将下面的内容复制到该文件。
export JAVA_HOME=/usr/local/development/jdk1.7.0_04
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
4. 重启电脑,使用命令java -version检查JDK是否安装成功。
技巧一:使用development.sh设置环境变量
网络上很多关于设置JDK环境变量的方法,都是说修改/etc/environment,/etc/profile,~/,bash_profile等文件。
其实如果打开/etc/profile,在最后我们可以发现有这样一段代码:
if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi
也就是说,在/etc/profile执行的最后,它会自动的执行/etc/profile.d目录下的所有可读的文件。这就是我们将设置JDK环境变量的工作放在/etc/profile.d/development.sh的原因,可以不用修改操作系统自带的/etc/profile内容,方便系统的移植。
技巧二:将development.sh放到/usr/local/profile.d
我的系统/usr/local挂载点是一个单独的磁盘分区,这样做的目的是方便系统的维护。/usr/local目录除了存放安装的软件以外,其实还可以将配置文件放在这个目录下面,例如上面的development.sh,这样重装系统的时候就不需要重做该文件。所以,可以新建目录/usr/local/profile.d,然后将development.sh复制到该新目录。至于怎么放到/etc/profile.d下面,我觉得可以采用符号链接的方式。
cd /ect/profile.d
sudo ln -s /usr/local/profile.d/development.sh
CP命令
该命令的功能是将给出的文件或目录拷贝到另一文件或目录中,同MSDOS下的copy命令一样,功能十分强大。
【语法】 cp [选项] 源文件或目录 目标文件或目录
【说明】该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。
【含义】
- a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。(复制的时候要保留文件属性用-a,不然会导致服务无法应用等问题,例如原文件拥有者为oracle,直接cp后文件拥有者变为root,会导致数据库服务器无法使用,可以使用chown修改文件拥有者,或者复制的时候直接用cp -a命令)
- d 拷贝时保留链接。
- f 删除已经存在的目标文件而不提示。
- i 和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。
- p 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。
- r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。
- l 不作拷贝,只是链接文件。
需要说明的是,为防止用户在不经意的情况下用cp命令破坏另一个文件,如用户指定的目标文件名已存在,用cp命令拷贝文件后,这个文件就会被新源文件覆盖,因此,建议用户在使用cp命令拷贝文件时,最好使用i选项。
例子:
cp -i file1 file2 (将文档 file1 复制成 file2 . –i为提示确认)
cp file1 dir1 (将文档 file1 复制到目录 dir1 下,文件名仍为 file1)
cp /tmp/file1 . (将目录 /tmp 下的文档 file1复制到现行目录下,档名仍为 file1)
cp /tmp/file1 file2 (将目录 /tmp 下的文档 file1现行目录下,档名为file2
cp -r dir1 dir2 (recursive copy) 复制整个目录.若目录 dir2 不存在,则将目录dir1,及其所有文档和子目录,复制到目录 dir2 下,新目录名称为dir1.若目录dir2不存在,则将dir1,及其所有文档和子目录,复制为目录 dir2)