首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ubuntu:将路径从OpenJDK 6更改为OracleJDK7

Ubuntu:将路径从OpenJDK 6更改为OracleJDK7
EN

Stack Overflow用户
提问于 2014-01-14 21:47:29
回答 5查看 44.4K关注 0票数 21

在下载了最新的.tar文件之后,我运行tar zxvf jdk-7u45-linux-x64.tar.gz来解压java文件。

.bashrc文件(vi ~/.bashrc)中设置路径如下;

代码语言:javascript
复制
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_45/bin/java
export PATH=$PATH:/usr/lib/jvm/jdk1.7.0_45/bin
export JDK_HOME=/usr/lib/jvm/jdk1.7.0_45    
export JRE_HOME=/usr/lib/jvm/jre1.7.0_45

现在,运行命令java -version或哪个java,java路径仍然指向较旧的java版本(java version "1.6.0_27")。

我知道默认的ubuntu采用OpenJDK路径。我必须将path更改为在.bashrc文件中设置的系统环境变量的最新版本。

还有,sudo update-alternatives --config java

代码语言:javascript
复制
Selection    Path                                      Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-7-oracle/jre/bin/java    1062      auto mode
  1            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      manual mode
  2            /usr/lib/jvm/java-7-oracle/jre/bin/java    1062      manual mode
* 3            /usr/lib/jvm/jdk1.7.0_45/bin/java          1         manual mode
Press enter to keep the current choice[*], or type selection number: 3
EN

回答 5

Stack Overflow用户

发布于 2014-01-14 21:50:51

Ubuntu (和Debian)有一种优雅的方式来管理像jdk这样的库。

使用update-alternatives,您可以在同一系统上管理多个jdk库,并选择要使用的库作为主库。

首先,您必须为新安装的jdk安装一个替代版本:

代码语言:javascript
复制
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.7.0_45/bin/java" 1
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.7.0_45/bin/javac" 1

通过这种方式,您可以安装新的jdk作为原始as的替代方案。然后,您可以选择要使用哪一个:

代码语言:javascript
复制
sudo update-alternatives --config java
sudo update-alternatives --config javac

您将被要求选择您要使用的jdk,在我的系统上,我有:

代码语言:javascript
复制
There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                           Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java   1061      auto mode
  1            /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java   1061      manual mode
* 2            /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java   1051      manual mode

Press enter to keep the current choice[*], or type selection number: 

在任何时候,您都可以使用--list选项查看javajavac的替代方案:

代码语言:javascript
复制
sudo update-alternatives --list java
sudo update-alternatives --list javac

要查看更多选项,请查看update-alternatives手册页。

票数 38
EN

Stack Overflow用户

发布于 2014-01-14 21:49:20

您可能想要这样做

代码语言:javascript
复制
export PATH=/usr/lib/jvm/jdk1.7.0_45/bin:$PATH

Linux可能还在path中,OpenJDK将使用它找到的第一个java

如果你不需要它,我建议你卸载OpenJDK。

票数 9
EN

Stack Overflow用户

发布于 2016-02-10 09:30:08

代码语言:javascript
复制
sudo  update-java-alternatives --list

要按名称和目录列出一台计算机上的所有Java安装,然后运行

代码语言:javascript
复制
sudo  update-java-alternatives --set [JDK/JRE name e.g. java-8-oracle]

选择要使用的JRE/JDK。

如果您想为每个Java任务使用不同的JDK/JRE,您可以运行update-alternatives一次配置一个java可执行文件;您可以运行

代码语言:javascript
复制
sudo  update-alternatives --config java[Tab]

查看可配置的Java命令(java、javac、javah、javaws等)。然后

代码语言:javascript
复制
sudo  update-alternatives --config [javac|java|javadoc|etc.]

将该Java任务/命令与特定的JDK/JRE相关联。

您可能还需要为某些应用程序设置JAVA_HOME :在this answer中,您可以使用

代码语言:javascript
复制
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")

对于JRE,或者

代码语言:javascript
复制
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:jre/bin/java::")

对于JDK。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21115133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档