如何在Ubuntu上设置JAVA_HOME路径?

57

如何在不必每次重启机器时都设置JAVA_HOME路径?

当我尝试在Ubuntu机器上设置JAVA_HOME时,我使用了以下方式:

1)从终端执行以下命令:

export JAVA_HOME=/usr/lib/jvm/jdk1.7.0

2) 我已直接编辑/etc/enviroment文件来添加JAVA_HOME路径。

真正奇怪的是,如果我使用echo命令测试JAVA_HOME(在上述两种方式之一后),我可以看到它被正确设置了,但是如果我重新启动、注销/登录或者甚至在机器上工作一段时间后,JAVA_HOME就不再设置了,我必须再次使用上述两种方式之一来设置它。

所以,有人能告诉我我在这里做错了什么吗?


1
你应该在unix.stackexchange.com或askubuntu.com上提问。 - Falmarri
我已经设置了JAVA_HOME和PATH变量,但是Java版本仍显示旧版本。这能帮到你。 - nachokk
1
回显 'export JAVA_HOME=jrunscript -e '"'java.lang.System.out.println(java.lang.System.getProperty("'"java.home"));'"'"\ >> ~/.bashrc' - G. Sylvie Davies
2个回答

47

将JAVA_HOME添加到文件中:

/etc/environment

如果要让它在整个系统中可用(尽管你需要重新启动Ubuntu)


12
不需要更新Ubuntu,在更改变量后执行:*$source /etc/environment*,然后完成! - Sergio
3
@Chechus 你说得对,但是这只会更新执行“source /etc/environment”命令的命令行终端的环境变量,对于其他进程,环境变量不会改变。 - morgano
@Sergio Sourcing /etc/environment 绝不能这样做。它不是一个脚本文件。 - alvarez
我相信这样会更好,因为我不必每次手动启动Ubuntu时都定义JAVA_HOME。 - Oscar Reyes

45

我通常会设置路径在

~/.bashrc

然而,对于Java,我按照https://askubuntu.com/questions/55848/how-do-i-install-oracle-java-jdk-7中的说明进行操作,这对我来说已经足够了。

你也可以定义多个java_home,并且只有其中一个处于活动状态(其余被注释掉)。

假设在您的bashrc文件中,您有:

export JAVA_HOME=......jdk1.7

#export JAVA_HOME=......jdk1.8

注意,1.8被注释掉了。一旦您执行以下操作:

source ~/.bashrc

jdk1.7将在路径中。

您可以通过这种方式轻松切换它们。还有其他更永久的解决方案。我发布的链接中包含该信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接