JAVA_HOME和PATH已设置,但java版本仍然显示旧的

我正在使用Linux Mint Cinnamon 14。我设置了和环境变量,如下所示:$JAVA_HOME$PATH~/.profile

export JAVA_HOME=/home/aqeel/development/jdk/jdk1.6.0_35
export PATH=/home/aqeel/development/jdk/jdk1.6.0_35/bin:$PATH

然后我做了适当的更改。source ~/.profile

当我执行命令检查活动的java版本时,它显示默认的(已安装的open-jdk)java版本。我如何使用我下载的那个覆盖默认的open-jdk?java -version

更新:

which java说 /usr/bin/java

$JAVA_HOME/bin/java -version说“权限被拒绝”

sudo $JAVA_HOME/bin/java -version(然后询问密码)说命令未找到

但是,并表明它是正确的目录。cd $JAVA_HOME/binls


答案 1

虽然看起来您的设置是正确的,但有一些事情需要检查:

  1. 的输出 - 特别是 。envPATH
  2. command -v java告诉你什么?
  3. 中是否有可执行文件,它是否设置了执行位?如果不是这样。java$JAVA_HOME\binchmod a+x java

我相信你已经'd你的后添加/改变和?source.profileJAVA_HOMEPATH

另外,您可以通过编写以下内容来帮助自己将来维护JDK安装:

export JAVA_HOME=/home/aqeel/development/jdk/jdk1.6.0_35
export PATH=$JAVA_HOME/bin:$PATH

然后,在设置 JDK 安装时,只需更新一个 env 变量。

最后,您可能需要运行以清除 Bash 程序缓存。其他 shell 可能需要类似的命令。hash -r

干杯


答案 2

update-java-alternatives

您的 找不到可执行文件,它只取决于您的 .javaJAVA_HOMEPATH

update-java-alternatives为整个系统管理它是一个好方法是:

update-java-alternatives -l

示例输出:

java-7-oracle 1 /usr/lib/jvm/java-7-oracle
java-8-oracle 2 /usr/lib/jvm/java-8-oracle

选择以下选项之一:

sudo update-java-alternatives -s java-7-oracle

就像 ,它通过符号链接管理工作。优点是一次管理所有 Java 实用程序的符号链接:、 、 、 等。update-alternativesjavacjavajavap

我还没有看到对JDK的影响。到目前为止,我只看到它用于第三方工具,例如MavenJAVA_HOME


推荐