我已经下载了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
或其他文件?
换句话说,我是否需要提供对此的组访问权限,或者只是添加环境变量?
答案 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
将是我的首选选项。