如何为Java设置JAVA_HOME?


Answers:


422

您可以将您JAVA_HOME/etc/profile彼得罗妮拉Escarabajo建议。但是JAVA_HOME或任何系统变量的首选位置是/etc/environment

/etc/environment在任何文本编辑器(如nano或)中打开,gedit并添加以下行:

JAVA_HOME="/usr/lib/jvm/open-jdk"

(java路径可能不同)

使用source加载变量,运行以下命令:

source /etc/environment

然后通过运行以下命令检查变量:

echo $JAVA_HOME

更新资料

通常,大多数Linux系统默认都使用/ etc / environment。如果您的系统不这样做,则将以下行添加到~/.bashrc(谢谢@pje)

source /etc/environment

2
当我尝试运行Android Studio(以IntelliJ IDEA为基础)时,出现了一条非常类似于@advocate的错误消息:“'tools.jar'似乎不在Android Studio类路径中。” 在对JAVA_HOME进行了很多摆弄而没有成功之后,我决定看看studio.sh,这是启动Android Studio的shellscript。作为一个疯狂的猜测,我将JDK_HOME设置为JAVA_HOME期望的相同值,瞧!它安装没有大问题。
费尔南德斯希尔顿酒店

3
对于从事软件开发的人员,请勿将JAVA_HOME放在/ etc / environment中,除非您希望在每次切换JDK版本时都重新启动。
HDave

2
正如其他人指出的那样,这是一个临时解决方案。没有人愿意在每次重新启动bash时都运行源代码。
yuranos87 '17

6
正如其他人指出的那样,这在终端会话之间并不存在。我为解决此问题所做的只是将行添加source /etc/environment到bash配置文件的顶部,~/.bashrc以便在启动时加载我的所有环境设置。到目前为止为我工作。
pje

2
@sedulam我更新了答案
Manula Waidyanatha

79

要设置JAVA_HOME环境变量,请执行以下操作:

  1. 通过按键盘上的Ctrl+ Alt+ 启动终端T
  2. 输入以下命令:
    $gksudo gedit /etc/environment
  3. 根据安装Java的位置,您需要提供完整路径。对于此示例,我在/usr/lib/jvm/java-7-oracle目录中安装了Oracle JDK 7 。
    滚动到文件末尾,然后输入以下内容:
    JAVA_HOME=/usr/lib/jvm/java-7-oracle
    export JAVA_HOME
  4. 保存文件并退出gedit
  5. 最后,重载使用以下命令系统PATH:
    $. /etc/environment

上面的方法将避免您每次登录计算机时都必须运行命令的麻烦。


5
如何 。/ etc /环境工作?
Sudip Bhandari

1
在中是否需要添加export命令/etc/environment
pkaramol '16

@pkaramol我必须在16.04LTS上添加export JAVA_HOME以使其在启动时加载。
adeen-s

3
@ adeen-s您添加export了一行,对您/etc/environment有帮助吗?该文件包含解析为- =分隔的名称/值对的变量定义;它的内容不作为命令执行。(请参阅参考资料man pam_env。)因此,除非您像对待脚本一样单独对待文件(例如,通过传递/etc/environment给bash的./ source内置文件),否则我不希望它起作用。
伊莱亚·卡根

>如何。/ etc /环境工作?-。(点)从文件加载命令askubuntu.com/a/232938/189965
罗马Bekkiev

37

如果您不知道路径,而您仅安装了openJDK,则可以键入 update-alternatives --config java并找到路径。要设置该变量,您可以编写,JAVA_HOME=<PATH>后跟export JAVA_HOME。注意,声明变量时没有空格。要检查变量是否已存储,您只需键入echo $JAVA_HOME以进行验证。


这似乎是静态的。如果我删除openjdk-7并安装openjdk-9,JAVA_HOME会不会指向错误的位置?如何使其动态化?
DavidJ

3
通过手动更改它。再次,您将成为动态的方式
。...– HDave

@HDave的意思是,在某些情况下,您可能希望JAVA_HOME指向特定的Java版本,因此使JAVA_HOME动态更新可能不是您想要的。
Maciej

我喜欢这个答案。我用echo进行了测试,看到了自己的路。但是,我感到困惑的是,为什么我在运行mvn -version时仍未设置JAVA_HOME环境变量
Winnemucca

1
当我更无知的时候,我写了这个答案。如所述设置变量只会影响您当前的终端会话,并且不会持久化。正确的方法是运行 update-alternatives --install <link> <name> <target> <priority> 例如:update-alternatives --install /usr/bin/java java /usr/lib/jvm/default-runtime/bin/java 1
Erro
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.