如何在Ubuntu中将JAVA_HOME
的值更改为指向Oracle的Java?如何将Oracle的Java设置为Ubuntu中的默认Java?
它应该指向java-6-sun
还是java-6-sun-1.6.0.24
?
如何在Ubuntu中将JAVA_HOME
的值更改为指向Oracle的Java?如何将Oracle的Java设置为Ubuntu中的默认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-[version number here]
的符号链接。
它是一个符号链接的原因是,如果有新版本的JVM,您不需要更新您的.bashrc
文件,它应该自动指向新版本。
如果要在全局范围内设置JAVA_HOME环境变量,并且在系统级意味着使用应在/etc/environment文件中设置。 For More。
谢谢,明白了:D –
或者/usr/lib/jvm/java-1.6.0-openjdk-如果您使用OpenJDK而不是Oracle(Sun)JDK,则使用amd64。 –
你可以使用 export JAVA_HOME =/usr/lib/jvm/default-java/ – noomz
如果你想提供给所有用户,并在系统启动这个环境变量,那么你可以添加以下/etc/profile.d/java.sh(如果需要创建它):
export JDK_HOME=/usr/lib/jvm/java-7-oracle
export JAVA_HOME=/usr/lib/jvm/java-7-oracle
然后在终端运行:
sudo chmod +x /etc/profile.d/java.sh
source /etc/profile.d/java.sh
我的第二个问题是 - 应该把它指向的java -6-太阳还是java-6-sun-1.6.0.24?
应该始终指向java-7-oracle
作为符号链接到最新安装的一个(假设你从Ubuntu软件库从可在oracle.com下载安装了Java和现在)。
如果您想在全局和系统级别更改它,
在
/etc/environment
添加这一行:
JAVA_HOME=/usr/lib/jvm/java-7-oracle
+1这是推荐的方式https: //help.ubuntu.com/community/EnvironmentVariables –
@metdos上述答案不是全局或系统级? –
@AndroidKiller你检查了丹尼尔库尔曼指出的链接吗? – metdos
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-alternatives --config java
来设置默认的Java。
请参考https://askubuntu.com/questions/121654/how-to-set-default-java-version。
如果您正在进行任何类型的开发,您需要指向JDK(Java开发工具包)。否则,您可以指向JRE(Java运行时环境)。
JDK包含JRE所具有的所有内容。如果您只是执行Java程序,则可以指向JRE或JDK。
您应该根据您当前使用的Java设置JAVA_HOME
。 readlink
将打印一个符号链接的价值为当前的Java和sed
将其调整到JRE目录:
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
如果你想设置JAVA_HOME为JDK,你应该转到上一级文件夹的详细:
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:jre/bin/java::")
将Oracle的Java SE开发工具包设置为系统默认的Java只需从here下载最新的Java SE开发工具包,然后在您的文件系统中创建一个您喜欢的目录,例如/usr/java
现在提取刚下载到该目录中的文件:
$ sudo tar xvzf jdk-8u5-linux-i586.tar.gz -C /usr/java
现在设置你的JAVA_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:
注意左边数字前面的星号,如果没有设置正确的数字,请输入数字并按回车键选择正确的数字。 现在测试你的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中组能去做这个。我已经在Ubuntu 12.04和Debian上测试过这个解决方案,并且它在两者都有效。
参见this;运行
sudo update-java-alternatives --list
名称和目录列出了所有机器上的Java安装,然后运行
sudo update-java-alternatives --set [JDK/JRE name e.g. java-8-oracle]
选择JRE/JDK要使用的。
如果您想为每个Java任务使用不同的JDK/JRE,则可以运行update-alternatives以一次配置一个java可执行文件;您可以运行
sudo update-alternatives --config java[Tab]
查看可以配置的Java命令(java,javac,javah,javaws等)。然后
sudo update-alternatives --config [javac|java|javadoc|etc.]
会将该Java任务/命令关联到特定的JDK/JRE。
您可能还需要设置JAVA_HOME对于某些应用:从this answer可以使用
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中。
另一种方法:'java -XshowSettings 2>&1 | grep -e'java.home'| awk'{print'JAVA_HOME =“$ 3}'| sed“s/\/jre // g”>>/etc/environment' – Xdg
http://askubuntu.com/questions/121654/how-to-set-default-java-version –