将JAVA_HOME添加到Linux - 正确的方法

时间:2018-06-15 10:39:43

标签: java linux

我已经下载了oracle jdk tarball,并将其解压缩到/usr/lib/java/jdk1.8.0_172目录。

我以递归方式向'/ usr / lib / java /`目录提供了755权限。

然后我继续将我的/etc/environment脚本更改为:

JAVA_HOME="/usr/lib/java/jdk1.8.0"
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:$JAVA_HOME/bin"

然后输入:

source /etc/environment

并输入java -version以确认其已被识别。

一旦我退出,一切都消失了。打开一个新的shell后我甚至找不到这个。我希望这适用于任何用户,但不记得是否必须将其添加到.bashrc或其他文件?

换句话说,我是否需要提供对此的组访问权限,或者只是添加环境变量?

2 个答案:

答案 0 :(得分:1)

我通常做的是,将文件添加到/etc/profile.d,沿着

行。
#!/bin/sh
export JAVA_HOME=/usr/java
export PATH=$PATH:$JAVA_HOME/bin

这应该在登录时为每个用户执行。

另外一件事是,我通常在/ usr / local下安装相应的“当前”java版本,例如: /usr/local/jdk1.8.0_172并将其链接到/ usr / java。这样我就可以轻松升级并最终来回切换而无需修改和/ etc-scripts。 (注意:今天可能最好的做法是推荐其他目录而不是我通常使用的目录......)

答案 1 :(得分:0)

我一次完成了以下工作,但它确实有效。

1)已将source /etc/environment添加到我的/etc/profile

2)输入source /etc/profile

3)完全退出bash

4)重新打开bash作为sudo并输入java -version

java version "1.8.0_172"
Java(TM) SE Runtime Environment (build 1.8.0_172-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.172-b11, mixed mode)

但我认为这也是,因为我递归地提供了755访问/usr/lib/java

我必须加倍努力,因为我正在做一个正确的" Sandboxed"在那些只有内联网连接的机器上开发,并且无法看到过去那个防火墙:( 否则,sudo apt-get install openjdk-8-jdk-headless将是我的首选选项。