我的系统 Java 版本是 1.6,要运行 Eclipse,我需要 JRE 1.7。我已经下载并解压了 Java 1.7 的存档,但我无法将默认路径更改为/usr/bin/java
解压后的文件夹路径
我主要使用所以我在文件cshrc
中做了这些改变.cshrc.user
set PATH = "$PATH":/path/to/java/jre1.7.0_67/bin
获取文件后.cshrc.user
,java -version
仍然显示 1.6,这意味着没有任何变化,我该如何更改默认的 JAVA PATH?
答案1
$PATH
从头到尾进行解析,直到找到匹配项。例如,如果您的$PATH
为:
/usr/bin:/path/to/jre6:/path/to/jre7
然后执行,shell 将首先在 中java -jar something.jar
查找可执行文件。它在那里找不到,所以它会在 中查找。它会在该目录中找到可执行文件,因此它将放弃进一步搜索并使用该 Java 可执行文件。java
/usr/bin
/path/to/jre6
java
您必须在 Java 6 路径之前添加 Java 7 的路径才能使用它。
不过,修改$PATH
并不是在 Java 版本之间切换的正确方法。您应该使用update-alternatives
。
运行
sudo update-alternatives --config java
以列出可用的 Java 版本并在它们之间切换。您新安装的版本尚不可用。运行
sudo update-alternatives --install /usr/bin/java java /path/to/jre7/java 100
注册JRE7的java。sudo update-alternatives --config java
再次运行并选择JRE7的Java。
答案2
您的路径中可能早先就有 java 1.6。
env | grep PATH
应该证实这一点。
对于 C shell (csh),编辑启动文件~/.cshrc
:
set path=(/usr/local/jdk1.7.0/bin $path)
对于 bash,编辑启动文件~/.bashrc
:
PATH=/usr/local/jdk1.7.0/bin:$PATH
export PATH
注意,两种情况下都会添加新的 JDK前现有路径。编辑上述文件时,应删除对 JDK 1.6 的任何引用。