我已经设置了JAVA_HOME和PATHvariables,但是java -version仍然显示旧的
我正在使用Linux Mint Cinnamon 14.我已经在~/.profile
设置了$JAVA_HOME
和$PATH
环境variables,如下所示:
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 -version
命令来检查活动java版本时,它显示默认(已安装的开放jdk)Java版本。 我怎样才能覆盖我下载的默认开放jdk?
更新:
which java
表示/ usr / bin / java
$JAVA_HOME/bin/java -version
说'权限被拒绝'
sudo $JAVA_HOME/bin/java -version
(要求密码,然后)说找不到命令
但是cd $JAVA_HOME/bin
, ls
显示它是正确的目录。
虽然看起来您的设置是正确的,但有几件事情要检查:
-
env
的输出 – 具体是PATH
。 -
which java
告诉你什么? - 在
$JAVA_HOME\bin
是否有一个java
可执行文件,并执行位设置? 如果不是chmod a+x java
呢。
我相信在添加/更改JAVA_HOME
和PATH
之后,你的source
.profile
?
另外,您可以通过编写来帮助您日后维护JDK安装
export JAVA_HOME=/home/aqeel/development/jdk/jdk1.6.0_35 export PATH=$JAVA_HOME/bin:$PATH
代替。 那么当你设置JDK安装时,你只需要更新一个envvariables。
干杯,
更新Java的替代品
java
可执行文件没有在您的JAVA_HOME
find,它只取决于您的PATH
。
update-java-alternatives
是一个pipe理整个系统的好方法:
update-java-alternatives -l
示例输出:
java-7-oracle 1 /usr/lib/jvm/java-7-oracle java-8-oracle 2 /usr/lib/jvm/java-8-oracle
select其中一个select:
sudo update-java-alternatives -s java-7-oracle
像update-alternatives
,它通过符号链接pipe理工作。 其优点是一次pipe理所有Java实用程序的符号链接: javac
, java
, javap
等
我还没有在JDK上看到JAVA_HOME
效果。 到目前为止,我只看到它在第三方工具中使用, 例如Maven 。
$ JAVA_HOME / bin / java -version说'权限被拒绝'
如果您无法访问或运行代码,则将其添加到您的path时将被忽略。 您需要使其可访问和可运行,或者获得您自己的副本。
做一个
ls -ld $JAVA_HOME $JAVA_HOME/bin $JAVA_HOME/bin/java
看看为什么你不能访问或运行这个程序。
当它searchjava的时候,从左到右的path条目是用下面的方式分隔的:所以你需要在/ usr / bin之前添加最新的jdk / bin目录的path,所以当它search到的时候会find最新的停止进一步search。
即PATH = / usr / java / jdk_1.8 / bin:/ usr / bin:…..等等。
然后使用以下命令初始化用户configuration文件:source〜/ .bash_profile
并检查:[哪个java]
你会得到正确的。
有一个简单的方法,只需从“/ usr / bin”中删除符号链接即可。 它会工作。
更新~/.profile
或~/.bash_profile
有时不起作用。 我刚刚删除了JDK 6和source
d .bash_profile
。
尝试运行这个:
sudo rm -rd jdk1.6.0_* #it may not let you delete without sudo
然后,修改/添加您的JAVA_HOME和PATHvariables。
source ~/.bash_profile #assuming you've updated $JAVA_HOME and $PATH
最简单的方法是删除链接或编辑/ usr / bin / java。 这有一个调用来执行在所提到的path的Java。