43 java linux environment-variables linux-mint
我使用Linux Mint的肉桂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
Run Code Online (Sandbox Code Playgroud)
然后我source ~/.profile做了适当的改变.
当我执行java -version命令来检查活动的java版本时,它会显示默认的(已安装的open-jdk)java版本.如何用我下载的那个覆盖默认的open-jdk?
更新:
which java/usr/bin/java
$JAVA_HOME/bin/java -version 说'权限被拒绝'
sudo $JAVA_HOME/bin/java -version (请求密码,然后说)找不到命令
但是cd $JAVA_HOME/bin,并ls表明它是正确的目录.
And*_*rup 62
虽然看起来您的设置是正确的,但有几件事需要检查:
env- 具体来说PATH.command -v java 告诉你什么?java可执行文件$JAVA_HOME\bin并且是否设置了执行位?如果没有chmod a+x java.我相信你source倒是你.profile添加/更改后JAVA_HOME和PATH?
此外,您可以通过编写此代码来帮助自己将来维护JDK安装:
export JAVA_HOME=/home/aqeel/development/jdk/jdk1.6.0_35
export PATH=$JAVA_HOME/bin:$PATH
Run Code Online (Sandbox Code Playgroud)
然后,您只需在设置JDK安装时更新一个env变量.
最后,您可能需要运行hash -r以清除Bash程序缓存.其他shell可能需要类似的命令.
干杯,
Cir*_*四事件 16
update-java-alternatives
java找不到您的可执行文件JAVA_HOME,它只取决于您的PATH.
update-java-alternatives 管理整个系统的好方法是通过:
update-java-alternatives -l
Run Code Online (Sandbox Code Playgroud)
样本输出:
java-7-oracle 1 /usr/lib/jvm/java-7-oracle
java-8-oracle 2 /usr/lib/jvm/java-8-oracle
Run Code Online (Sandbox Code Playgroud)
选择其中一个替代方案:
sudo update-java-alternatives -s java-7-oracle
Run Code Online (Sandbox Code Playgroud)
比如update-alternatives,它通过符号链接管理工作.:其优点是,在一次管理符号链接到所有的Java工具javac,java,javap,等.
我还没有看到JAVA_HOME对JDK 的影响.到目前为止,我只看到它用于第三方工具,例如Maven.
如果您想使用从 Oracle 网站下载的 JDK,对我有用的(使用 Mint)是使用update-alternatives:
我跑了:
sudo update-alternatives --install /usr/bin/java java /home/aqeel/development/jdk/jdk1.6.0_35/bin/java 1
Run Code Online (Sandbox Code Playgroud)
现在您可以执行sudo update-alternatives --config java并选择您的 Java 版本。
export JAVA_HOME="/home/aqeel/development/jdk/jdk1.6.0_35"语句现在,我下载了两个 JDK(假设第二个已被提取到/home/aqeel/development/jdk/jdk-10.0.1)。
我们如何根据当前使用的 Java 动态更改 JAVA_HOME?
我的解决方案不是很优雅,我很确定那里有更好的选择,但无论如何:
为了根据所选的 java 替代动态更改 JAVA_HOME,我将此代码段添加到 ~/.bashrc 中:
export JAVA_HOME=$(update-alternatives --query java | grep Value: | awk -F'Value: ' '{print $2}' | awk -F'/bin/java' '{print $1}')
Run Code Online (Sandbox Code Playgroud)最后(这超出了范围)如果您必须不断更改 java 版本,您可能需要考虑:
为您的~./bash_aliases添加别名:
alias change-java="sudo update-alternatives --config java"
Run Code Online (Sandbox Code Playgroud)(您可能必须创建该文件,并可能在~/.bashrc 中取消注释与此相关的部分)