2017-09-02 139 views
-1

我的问题如下:如何在/ etc/profile设置ENV变量?

  1. 这是代码。

    [[email protected] 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) 
    
    [[email protected] eclipse]# vim /etc/profile 
    
    [[email protected] eclipse]# source /etc/profile 
    
    [[email protected] 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) 
    
    [[email protected] eclipse]# ./eclipse 
    
  2. 这是我在加入象下面的/ etc /简档;

    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版本?

+0

请首先缩进代码。 –

+0

借用[https://stackoverflow.com/help/formatting](https://stackoverflow.com/help/formatting)... –

回答

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伎俩,并重复,直到你得到的东西,这不是一个符号链接 - 这是没有箭头的东西。

[email protected] ~ $ 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 
[email protected] ~ $ 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

所以你需要更换一个链接到Java中/root/jdk1.8.0_91(其中,顺便说一句,是把它的非常不寻常的地方),你最后的符号链接。

你这样做与ln命令: LN -s文件1 LINK1

哪里file1是Java可执行你使用,并link1是最后的符号链接,你发现(更多细节上lnhttps://www.cyberciti.biz/faq/creating-soft-link-or-symbolic-link/)。

所以在机,你就必须得调整这一个,为你,我愿意做这样的事情:

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

所以,现在你的系统范围的默认的Java将指向你想要的一个。

然后,您可以将PATH修改从您的配置文件(以及出口语句)中取出,但将其中的JAVA_HOME保留。

你应该很好去。