如何在/ etc / profile中设置ENV变量?

时间:2017-09-02 04:33:31

标签: java

我的问题如下;

  1. 这是代码。

    [root@localhost eclipse]# java -version
    
    java version "1.6.0_17"
    OpenJDK Runtime Environment (IcedTea6 1.7.4) (rhel-1.21.b17.el6-i386)
    OpenJDK Client VM (build 14.0-b16, mixed mode)
    
    [root@localhost eclipse]# vim /etc/profile
    
    [root@localhost eclipse]# source /etc/profile
    
    [root@localhost eclipse]# java -version
    
    java version "1.6.0_17"
    OpenJDK Runtime Environment (IcedTea6 1.7.4) (rhel-1.21.b17.el6-i386)
    OpenJDK Client VM (build 14.0-b16, mixed mode)
    
    [root@localhost eclipse]# ./eclipse 
    
  2. 这是我在/ etc / profile中添加的内容,如下所示;

    JAVA_HOME=/root/jdk1.8.0_91
    
    PATH=$PATH:$JAVA_HOME/bin
    
    export JAVA_HOME PATH
    
  3. 这是错误消息

    Version 1.6.0_17 of the JVM is not suitable for this product. 
    
    Version: 1.8 or greater is required.
    
  4. 如何更改JAVA版本?

1 个答案:

答案 0 :(得分:0)

问题是你的系统已经知道java可执行版本的位置了,你已经告诉它另一个地方(用你的PATH更改),但是你已经在结束时添加了它要查看的地方列表。它永远不会在那里看,因为它已经找到了一个java可执行文件,一旦找到它就停止查找。

最简单(我认为错误)的方法是将路径命令更改为:

PATH=$JAVA_HOME/bin:$PATH

剩下的就是原样。

这会告诉你的系统首先查看那个java文件夹,但是它会看到每个应用程序的 (而不是找到它,然后查看下一个文件夹),这就是为什么它是错误的 - 它会减慢你计算机上的东西。

要做到这一点,正确的方法将需要一些侦探工作。

开始
which java

这将告诉你它使用的是哪个java可执行文件(1.6.0版)。在我的机器上它是

/usr/bin/java
好的,所以把它放到ls -l命令中 - 但记得替换上面的路径:

ls -l /usr/bin/java

在我的机器上它说:

lrwxrwxrwx 1 root root 22 Jul  2 11:39 /usr/bin/java -> /etc/alternatives/java

此处的箭头非常重要(开始时l正确)。这意味着/usr/bin/java/etc/alternatives/java

的符号链接

再次使用ls -l技巧,然后重复,直到你得到的东西不是符号链接 - 这是没有箭头的东西。

greg@greg-mint ~ $ ls -l /etc/alternatives/java
lrwxrwxrwx 1 root root 46 Jul  2 11:39 /etc/alternatives/java -> /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
greg@greg-mint ~ $ ls -l /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
-rwxr-xr-x 1 root root 6464 Jul 28 14:31 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java

在我的情况下,/etc/alternatives/java是最后一个符号链接。 openjdk-amd64的那个没有箭头,因此它是一个“真实”文件,而不是符号链接。同样在我的情况下,我已经指向1.8版本的可执行文件。您当前应该指向1.6版本的可执行文件,我们需要更改它。

您需要做的是确定最后的符号链接,然后调整它。

在我的情况下,最后一个符号链接是/etc/alternatives/java

因此,您需要将最后一个符号链接替换为链接到/root/jdk1.8.0_91中的java的符号链接(顺便提一下,它是非常不寻常的放置位置)。< / p>

使用ln命令执行此操作:     ln -s file1 link1

file1是您想要使用的java可执行文件,而link1是您找到的最后一个符号链接(有关ln的详细信息:{{ 3}})。

所以在我的机器上,你也必须调整这个,对你来说,我会这样做:

sudo ln -s /root/jdk1.8.0_91/bin/java /etc/alternatives/java

所以现在你的系统范围的默认java将指向你想要的那个。

然后,您可以对您的个人资料(以及导出声明)进行PATH修改,但将JAVA_HOME保留在那里。

你应该好好去。