如何设置Oracle';在Ubuntu中,Java是默认的Java吗?

如何设置Oracle';在Ubuntu中,Java是默认的Java吗?,java,ubuntu,java-home,Java,Ubuntu,Java Home,如何在Ubuntu中将JAVA\u HOME的值更改为指向Oracle的JAVA 它应该指向java-6-sun还是java-6-sun-1.6.0.24?我把这行放在下面: export JAVA_HOME=/usr/lib/jvm/java-7-oracle 在我的~/.bashrc文件中 /usr/lib/jvm/java7-oracle应该是指向/usr/lib/jvm/java-7-oracle-[此处的版本号]的符号链接 它是一个符号链接的原因是,如果有新版本的JVM,您不需要更新

如何在Ubuntu中将
JAVA\u HOME
的值更改为指向Oracle的JAVA

它应该指向
java-6-sun
还是
java-6-sun-1.6.0.24

我把这行放在下面:

export JAVA_HOME=/usr/lib/jvm/java-7-oracle
在我的
~/.bashrc
文件中

/usr/lib/jvm/java7-oracle
应该是指向
/usr/lib/jvm/java-7-oracle-[此处的版本号]
的符号链接

它是一个符号链接的原因是,如果有新版本的JVM,您不需要更新
.bashrc
文件,它应该自动指向新版本


如果要在全局和系统级别设置
JAVA\u HOME
环境变量,则意味着应在
/etc/environment
文件中设置使用。

如果希望此环境变量可供所有用户使用并在系统启动时使用,则可以将以下内容添加到/etc/profile.d/JAVA.sh(必要时创建):

然后在终端运行中:

sudo chmod +x /etc/profile.d/java.sh
source /etc/profile.d/java.sh

我的第二个问题是——它应该指向java-6-sun还是java-6-sun-1.6.0.24


它应该始终指向
java-7-oracle
,因为该符号链接到最新安装的版本(假设您从Ubuntu存储库安装java,现在可以从oracle.com下载)。

如果您想在全局和系统级别对其进行更改

添加此行:

JAVA_HOME=/usr/lib/jvm/java-7-oracle
爪哇6

export JAVA_HOME=/usr/lib/jvm/JAVA-1.6.0-openjdk-amd64

还是java 7


export JAVA_HOME=/usr/lib/jvm/JAVA-1.7.0-openjdk-amd64

如果要在安装多个jdk时使用特定版本的JAVA,仅设置JAVA_HOME可能无法工作

您需要使用
sudo update alternations--config java
来设置默认java


请参阅。

如果要进行任何类型的开发,请指向JDK(Java开发工具包)。否则,您可以指向JRE(Java运行时环境)

JDK包含JRE所拥有的一切,甚至更多。如果您只是在执行Java程序,那么可以指向JRE或JDK

您应该根据当前使用的JAVA设置
JAVA\u HOME
readlink
将打印当前Java的符号链接值,
sed
将其调整到JRE目录:

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
$ sudo tar xvzf jdk-8u5-linux-i586.tar.gz -C /usr/java
如果要将JAVA_HOME设置为JDK,您应该再上一个文件夹:

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:jre/bin/java::")

要将Oracle的Java SE开发工具包设置为系统默认Java,只需从中下载最新的Java SE开发工具包,然后在文件系统中的某个位置创建一个目录,例如
/usr/Java
,现在提取刚下载到该目录中的文件:

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
$ sudo tar xvzf jdk-8u5-linux-i586.tar.gz -C /usr/java
现在要设置
JAVA\u HOME
环境变量:

$ JAVA_HOME=/usr/java/jdk1.8.0_05/
$ sudo update-alternatives --install /usr/bin/java java ${JAVA_HOME%*/}/bin/java 20000
$ sudo update-alternatives --install /usr/bin/javac javac ${JAVA_HOME%*/}/bin/javac 20000
确保Oracle的java通过以下方式设置为默认java:

$ update-alternatives --config java
你会得到这样的结果:

There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                           Priority   Status
------------------------------------------------------------
* 0            /opt/java/jdk1.8.0_05/bin/java                  20000     auto mode
  1            /opt/java/jdk1.8.0_05/bin/java                  20000     manual mode
  2            /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java   1061      manual mode

Press enter to keep the current choice[*], or type selection number:
请注意左侧数字前的星号,如果未设置正确的数字,请通过键入数字并按enter键选择正确的数字。 现在测试您的java:

$ java -version
如果你得到了如下结果,你就可以开始了:

java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) Server VM (build 25.5-b02, mixed mode)
还要注意的是,您可能需要root权限或在sudoers组中才能执行此操作。我已经在Ubuntu12.04和Debian wheezy上测试了这个解决方案,它在这两个版本中都有效;跑

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

sudo  update-java-alternatives --set [JDK/JRE name e.g. java-8-oracle]
选择要使用的JRE/JDK

如果您想为每个Java任务使用不同的JDK/JRE,您可以运行更新替代方案,一次配置一个Java可执行文件;你可以跑

sudo  update-alternatives --config java[Tab]
查看可以配置的Java命令(Java、javac、javah、javaws等)。然后

sudo  update-alternatives --config [javac|java|javadoc|etc.]
将该Java任务/命令与特定的JDK/JRE关联

您可能还需要为某些应用程序设置JAVA_主页:从您可以使用

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
对于JRE,或

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:jre/bin/java::")

对于JDK。

或/usr/lib/jvm/java-1.6.0-openjdk-amd64,如果您使用的是openjdk而不是Oracle(Sun)的JDK。您可以使用export java_HOME=/usr/lib/jvm/default java/@noomz,如果默认java不存在,您如何获得它?@AHungerArtist如果您安装了openjdk或其他官方支持的Ubuntu软件包,您会得到它。不幸的是,使用webupd8/javappa的oraclejdk不支持它。事实上,
oracle-java7-set-default
软件包的作用我完全不清楚。你把它放在文件的什么地方?+1这是推荐的方法@metdos上面的答案不是全局的,也不是系统级的?@AndroidKiller你检查过daniel kullmann指出的链接了吗?@metdos工作得很好,但是引用变量对我不起作用…
$JAVA\u HOME
这样使用时无法解析
PATH=$JAVA\u HOME/bin
,尝试重新启动,没有效果。我必须
导出
设置
JAVA_HOME
在这个文件或我的个人资料中吗?@Raffian我不确定不同的角落案例,这样对我来说效果很好,有关更多信息,我建议您阅读“是”,此解决方案比公认的解决方案更干净。@JayminGajjar表示感谢的评论是不必要的。本网站支持良好问题/答案的机制是对其进行投票。如果你没有足够的声誉去做这件事,但有足够的评论,请尝试在其中包括一些有用的信息,比如你测试了什么系统,什么操作系统,发现这个解决方案有效等等@Barracuda我已经投票了,你的信息是正确的,它在Ubuntu 16.10 64位服务器操作系统上对我有效:)另一种方法:
java-XshowSettings 2>&1|grep-e'java.home'| awk'{print“java\u home=“$3}”sed“s/\/jre//g”>/etc/environment
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:jre/bin/java::")