如何在Ubuntu中设置Java环境路径

220

我刚用sudo apt-get install openjdk-6-jdk命令在Ubuntu中安装了JDK,在安装后Java的bin目录位于哪里?我该如何设置该目录的环境路径?我对Ubuntu有很少的经验,有人可以给一些建议或者提供参考网站吗?

26个回答

275

请按照以下方式设置环境变量

编辑系统路径文件 /etc/profile

sudo gedit /etc/profile
在结尾添加以下行:
JAVA_HOME=/usr/lib/jvm/jdk1.7.0
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
export JAVA_HOME
export JRE_HOME
export PATH

然后注销并重新登录Ubuntu以设置路径...


32
为什么要导出JRE_HOME? - whossname
6
对我来说没有起作用,之前的版本仍然是默认的。我改变了路径的顺序为export PATH=${JAVA_HOME}/bin:${PATH},这样就更新了版本。我认为这里左到右的优先级起作用了。 - Ridhuvarshan
2
.bash_profile和.bashrc是特定于bash的文件,而.profile文件在其他许多shell中在没有自己的特定于shell的配置文件的情况下被读取。 /etc/bash_profile(备用/etc/profile)用于系统范围的配置,在用户的.profile之前读取。 - Ryan Augustine
同时,如果您更改了 /etc/profile 文件,您需要注销并重新登录才能使更改生效;但是,如果您更改了 ~/.bashrc 文件,则只需关闭并打开一个新的终端即可。 - Ryan Augustine
只需添加以下内容...export JAVA_HOME=$HOME/.local/jbr export PATH=$PATH:$HOME/bin:$JAVA_HOME/bin - aravinth C

104

Java通常安装在/usr/java目录下,您需要定位已安装的版本并执行以下操作:

假设您正在使用bash shell(如果您刚开始学习,建议使用bash而不是其他shell),您可以直接输入bash命令启动它。

编辑您的~/.bashrc文件,并添加以下路径:

例如,使用vi编辑~/.bashrc文件:

插入以下行:

export JAVA_HOME=/usr/java/<your version of java>
export PATH=${PATH}:${JAVA_HOME}/bin

在保存更改后,退出并重新启动您的bash或只需键入bash以启动新的shell。

键入export以确保路径正确。

键入java -version以确保Java可访问。


非常好!谢谢。注意:您可能需要从系统中删除默认的openJDK,因为它首先出现在全局路径中。因此,在加载上述脚本后,您只会选择“javac”,而不是Java,因为默认的openjk-jre已被删除。sudo apt-get remove openjdk-* - kholofelo Maloma
我有一个问题,我尝试了各种方法来更新Java,但是我的版本仍然是jdk1.7,但我已经设置了路径到jdk1.8。 - Vonton

36

Ubuntu会将openjdk6安装到/usr/lib/jvm/java-6-openjdk路径下,因此您将在/usr/lib/jvm/java-6-openjdk/bin路径下拥有bin文件。通常情况下,Java及其相关可执行文件的类路径会自动设置。


看起来你也可以使用/usr/lib/jvm/default-java,对吗? - Brennan

32

为单个用户设置JAVA_HOME / PATH,请登录您的帐户并打开 .bash_profile 文件

$ vi ~/.bash_profile

使用以下语法设置JAVA_HOME:export JAVA_HOME=<path-to-java>。如果您的路径设置为 /usr/java/jdk1.5.0_07/bin/java,请按如下方式设置:

export JAVA_HOME=/usr/java/jdk1.5.0_07/
export JAVA_HOME=/usr/java/jdk1.5.0_07/bin/java

请将PATH设置为以下内容:

export PATH=$PATH:/usr/java/jdk1.5.0_07/bin

根据您的设置随意替换 /usr/java/jdk1.5.0_07。保存并关闭文件。注销并重新登录即可查看新更改。或者,输入以下命令立即激活新的路径设置:

$ source ~/.bash_profile

或者

$ . ~/.bash_profile

验证新的设置:

$ echo $JAVA_HOME
$ echo $PATH

提示:使用以下命令在UNIX/Linux下查找Java可执行文件的确切路径:

which java

$ which java
请注意,文件~/.bashrc类似,但有一个例外,即~/.bash_profile仅针对Bash登录shell运行,而.bashrc则适用于每个新的Bash shell。
要为所有用户设置JAVA_HOME / PATH,请在/etc/profile或/etc/bash.bashrc文件中设置全局配置:
# vi /etc/profile

接下来请按照以下方式设置PATH/JAVA_PATH变量:

export PATH=$PATH:/usr/java/jdk1.5.0_07/bin
export PATH=$PATH:/usr/java/jdk1.5.0_07/bin

保存并关闭文件。再次输入以下命令以立即激活路径设置:

# source /etc/profile

或者

# . /etc/profile

3
你确定应该将JAVA_HOME设置为java二进制文件吗? - Uyghur Lives Matter

23

您需要设置$JAVA_HOME变量。

在我的情况下,当我设置Maven时,我必须将它设置到JDK安装的位置。

首先找出JAVA安装的位置:

$ whereis java

Java:/usr/bin/java /usr/share/java /usr/share/man/man1/java.1.gz

现在深入了解:

$ ls -l /usr/bin/java

lrwxrwxrwx 1 root root 46 Aug 25 2018 /etc/alternatives/java -> /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java

深入挖掘:

$ ls -l /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java

-rwxr-xr-x 1 root root 6464 Mar 14 18:28 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java

因为它没有被引用到任何其他目录,所以我们将使用它。

使用nano打开/etc/environment

$ sudo nano /etc/environment

添加以下内容

JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64

export JAVA_HOME

使用以下命令重新加载 PATH:

$. /etc/environment

现在:

$ echo $JAVA_HOME

这是您的输出:

/usr/lib/jvm/java-1.8.0-openjdk-amd64

我参考的来源:

https://askubuntu.com/a/175519

https://dev59.com/YmQn5IYBdhLWcg3wTlsS#23427862


10
如果您只安装了openJDK,则应更新链接,因为您可能有一些OpenJDK安装。
sudo update-alternatives --config java

之后

$gedit ~/.bashrc

在文件中添加以下行:

JAVA_HOME=/usr/lib/jvm/YOUR_JAVA_VERSION export PATH=$PATH:$JAVA_HOME/bin export JAVA_HOME

您可以使用以下命令获取您的Java版本:

java -version

8
要设置系统范围的作用域,您需要使用/etc/environment文件sudo gedit /etc/environment。这是您可以定义任何环境变量的位置。它可以在整个系统范围内可见。定义变量后,需要重新启动系统。
示例:
sudo gedit /etc/environment

添加如下内容:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
JAVA_HOME="/opt/jdk1.6.0_45/"

这里是您可以找到更多信息的网站:http://peesquare.com/blogs/environment-variable-setup-on-ubuntu/。该网站与Ubuntu操作系统中的环境变量设置相关,可供IT技术人员参考。

如果您更新了任何条目,请使用“source /etc/environment”命令重新加载。 - Waleed Abdalmajeed
或者注销以自动激活新变量(请参见此问题)。 - DieterDP

8

如何安装Java包:

使用官方的Ubuntu软件包,通过alternatives来管理,安装所需的Java版本:
sudo apt install -y openjdk-8-jdk
或/和其他版本: sudo apt install -y openjdk-11-jdk

上述答案仅适用于您的计算机上所有软件只有一个版本,可以跳过更新alternatives。因此,您可以快速硬编码在.bashrc或其他地方中:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
但这不是健康的方式,因为之后您可能会更改版本。

正确设置JAVA_HOME(可选设置JAVA_SDK、JAVA_JRE)的方法

正确的方法(在有多个版本时必须执行),是检测update-alternative指向的内容,并始终使用update-alternatives切换活动版本。

以下是针对特定Unix帐户或所有帐户(机器级别)的建议。

1. 仅适用于特定Unix帐户:

如果您没有权限在机器级别执行此操作,请使用此选项。

cat <<'EOF' >>~/.bashrc

export JAVA_HOME=$(update-alternatives --query java | grep Value | cut -d" " -f2 | sed 's!\(\/.*\)jre\(.*\)!\1!g')
export JDK_HOME=${JAVA_HOME}
export JRE_HOME=${JDK_HOME}/jre/

EOF

2. 要在机器级别上完成,并适用于所有Bourne shell,您需要2个步骤:

2.a

cat <<'EOF' | sudo tee /etc/profile.d/java_home_env.sh >/dev/null

export JAVA_HOME=$(update-alternatives --query java | grep Value | cut -d" " -f2 | sed 's!\(\/.*\)jre\(.*\)!\1!g')
export JDK_HOME=${JAVA_HOME}
export JRE_HOME=${JDK_HOME}/jre/

EOF

由于您的 Shell 可能默认未设置为交互模式,因此您可能还需要执行以下操作:
2.b

cat <<'EOF' | sudo tee -a /etc/bash.bashrc >/dev/null
if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
  unset i
fi
EOF

注意:不需要更新$PATH,因为update-alternatives会处理到/usr/bin/的链接。
更多信息请参见:https://manpages.ubuntu.com/manpages/trusty/man8/update-alternatives.8.html


当我安装"openjdk-11-jdk-headless"后,使用上述选项1时,JAVA_HOME和JDK_HOME都等于"/usr/lib/jvm/java-11-openjdk-amd64/bin/java",我认为这是不正确的。至少Maven/mvn会显示"JAVA_HOME环境变量未正确定义。注意:JAVA_HOME应该指向JDK而不是JRE". - DavidJ

8
  • Open terminal (Ctrl+Alt+t)
  • Type

    sudo gedit .bashrc 
    
  • Enter password of ubuntu user
  • Go to last line of the file
  • Type below code in new line

    export JAVA_HOME=enter_java_path_here
    export PATH=$JAVA_HOME/bin:$PATH
    eg: export JAVA_HOME=/home/pranav/jdk1.8.0_131
        export PATH=$JAVA_HOME/bin:$PATH
    
  • Save the file
  • Type

    source ~/.bashrc
    

    in terminal

  • Done

7

创建/打开 ~/.bashrc 文件:$vim ~/.bashrc

JAVA_HOMEPATH 添加为指向您的JDK路径:

export JAVA_HOME=/usr/java/<your version of java>
export PATH=${PATH}:${JAVA_HOME}/bin

保存文件

现在输入java -version,它应该显示您在.bashrc文件中设置的内容。

这将在会话之间保持不变。

例如:

enter image description here

enter image description here


这个完美地运行了。我最初添加了"",但在Ubuntu上不起作用。 - AdityaKapreShrewsburyBoston

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