时间:2010-07-25 18:27:59

标签: linux configuration scripting integration system-administration

3 个答案:

答案 0 :(得分:3)

答案 1 :(得分:0)

grep -q JAVA_HOME /etc/environment || echo 'JAVA_HOME="/usr/lib/jvm/java-5-sun"' >> /etc/environment

如果在文件中找到模式,则grep命令返回0(true)。所以,上面写着:

检查文件中是否设置了JAVA_HOME 或者在文件中设置JAVA_HOME

0-15:49 root@noneedto ~# cat /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
0-15:49 root@noneedto ~# grep JAVA_HOME /etc/environment && echo true
1-15:49 root@noneedto ~# grep -q JAVA_HOME /etc/environment || echo 'JAVA_HOME="/usr/lib/jvm/java-5-sun"' >> /etc/environment
0-15:49 root@noneedto ~# grep JAVA_HOME /etc/environment && echo true
JAVA_HOME="/usr/lib/jvm/java-5-sun"
true
0-15:49 root@noneedto ~# grep -q JAVA_HOME /etc/environment || echo 'JAVA_HOME="/usr/lib/jvm/java-5-sun"' >> /etc/environment
0-15:49 root@noneedto ~# cat /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
JAVA_HOME="/usr/lib/jvm/java-5-sun"

如您所见,如果您多次调用此单行,则后续调用不会添加到文件中,因为在您尝试附加文件之前grep会返回true。

答案 2 :(得分:0)

在我的Ubuntu系统中,我的JAVA_HOME看起来像这样:

JAVA_HOME=/usr/lib/jvm/default-java

ls -l /usr/lib/jvm/default-java查看该文件,我注意到了这一点:

lrwxrwxrwx 1 root root 24 Apr 27  2012 /usr/lib/jvm/default-java -> java-1.7.0-openjdk-amd64

换句话说,软链接中的路径是您唯一需要更改的路径。

要查看已安装的Java环境列表,我使用了此ls -l ...命令:

prompt$ ls -l /usr/lib/jvm
total 20
lrwxrwxrwx 1 root root   24 Apr 27  2012 default-java -> java-1.7.0-openjdk-amd64
drwxr-xr-x 4 root root 4096 Feb 23 17:54 java-1.5.0-gcj-4.8-amd64
lrwxrwxrwx 1 root root   20 Sep  2  2012 java-1.6.0-openjdk-amd64 -> java-6-openjdk-amd64
lrwxrwxrwx 1 root root   20 Jul  3  2013 java-1.7.0-openjdk-amd64 -> java-7-openjdk-amd64
drwxr-xr-x 5 root root 4096 Oct  7  2012 java-6-openjdk-amd64
drwxr-xr-x 3 root root 4096 Oct  7  2012 java-6-openjdk-common
drwxr-xr-x 5 root root 4096 Sep 21 20:06 java-7-openjdk-amd64
drwxr-xr-x 8 root root 4096 Sep 18 21:18 java-7-oracle

所以现在我可以用:

切换到另一个默认值
sudo rm /usr/lib/jvm/default-java
sudo ln -s java-7-oracle /usr/lib/jvm/default-java

JAVA_HOME变量将从Oracle运行Java 7。