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

Posted

技术标签:

【中文标题】如何在 Ubuntu 中设置 Java 环境路径【英文标题】:How to set Java environment path in Ubuntu 【发布时间】:2012-03-25 15:46:47 【问题描述】:

我刚刚在 Ubuntu 中使用sudo apt-get install openjdk-6-jdk 命令安装了 JDK, 安装后 Java bin 目录在哪里?以及如何设置该目录的环境路径?我对 Ubuntu 没有什么经验,谁能给点建议或推荐任何好的网站以供参考?

【问题讨论】:

【参考方案1】:

我在我的 Ubuntu 20.04 中安装了 java 11。 为此设置了 JAVA_HOME。

输入这个命令来查看你的ubuntu版本--

swapnil@swapnil-vm:~$ lsb_release -d
Description:    Ubuntu 20.04.3 LTS

输入这个命令来找出你的 jvm 的位置 --

swapnil@swapnil-vm:~$ whereis jvm
jvm: /usr/lib/jvm

在您选择的任何编辑器中打开 .bashrc --

nano .bashrc

添加以下行--

## setting JAVA_HOME
JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export JAVA_HOME

PATH=$PATH:$JAVA_HOME/bin
export PATH

现在你可以走了! 打开一个新终端并输入命令--

ehco $JAVA_HOME

【讨论】:

【参考方案2】:

使用以下几行设置/etc/environment中的路径变量

echo export JAVA_HOME=/path/to/java | sudo tee -a /etc/environment
echo export JRE_HOME=/path/to/jre  | sudo tee -a /etc/environment

它应该可以工作。

注意:

您应该重新启动系统以使更改生效。

别忘了重启后来这里投票+1 :)-|-

【讨论】:

【参考方案3】:

    安装 JDK 后,在环境中设置 JAVA_HOME

    sudo nano /etc/environment 并添加行JAVA_HOME="/usr/lib/jvm/jdk-11.0.1/"

    .bashrc中添加配置

sudo nano ~/.bashrc 并添加以下行

JAVA_HOME=/usr/lib/jvm/jdk-11.0.11/
PATH=$JAVA_HOME/bin:$PATH
    source ~/.bashrc刷新新配置 输入命令java-version可以看到安装的版本

【讨论】:

【参考方案4】:

创建/打开~/.bashrc 文件$vim ~/.bashrc 添加 JAVA_HOME 和 PATH 以引用您的 JDK 路径

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

保存文件

现在输入 java - version 它应该显示您在 .bashrc 文件中设置的内容。 这也将在会话中持续存在。

例子:

【讨论】:

这非常有效。我最初添加了“”,但这在 Ubuntu 上不起作用。【参考方案5】:

从已安装列表中设置 java 版本。要查看已安装版本的列表,请运行以下命令:

update-java-alternatives --list

然后根据以下命令设置你的java版本:

sudo update-java-alternatives --set /usr/lib/jvm/java-1.8.0-openjdk-amd64

【讨论】:

【参考方案6】:

我有一个 Linux Lite 3.8(它基于 Ubuntu 16.04 LTS)并且在以下文件中的路径更改(具有 root 权限)与重启有帮助。

/etc/profile.d/jdk.sh

【讨论】:

【参考方案7】:

如何安装java包:

使用官方 ubuntu 软件包安装所需的 java 版本/版本,这些软件包使用替代方案进行管理:sudo apt install -y openjdk-8-jdk 或/和其他版本: sudo apt install -y openjdk-11-jdk

仅当您的计算机上的所有软件只有一个版本时,上述答案才是正确的,并且您可以跳过使用更新替代方案。因此可以在 .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

PS:应该不需要更新 $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”j【参考方案8】:

您需要设置 $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 根 46 2018 年 8 月 25 日 /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

导出 JAVA_HOME

使用

重新加载 PATH
$. /etc/environment

现在,

$ echo $JAVA_HOME

这是你的输出:

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

我提到的来源:

https://askubuntu.com/a/175519

https://***.com/a/23427862/6297483

【讨论】:

【参考方案9】:

使用文本编辑器打开文件/etc/environment 添加行JAVA_HOME="[path to your java]" 保存并关闭然后运行source /etc/environment

【讨论】:

【参考方案10】:

您现在要做的就是设置“JAVA_HOME”“PATH” 环境变量,然后您就完成了。输入以下命令来设置您的环境变量。确保您的环境变量指向您机器上的有效 JDK 安装。对于 Ubuntu 18.04,路径为 /usr/lib/jvm/java-8-openjdk-amd64/

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

查看你的JAVA_HOME路径是否保存成功,输入以下命令查看。

echo $JAVA_HOME

【讨论】:

这仅适用于终端会话,不适用于其他地方【参考方案11】:

    更新bashrc文件以添加JAVA_HOME

    sudo nano ~/.bashrc

    JAVA_HOME 添加到bashrc 文件中。

    export JAVA_HOME=/usr/java/&lt;your version of java&gt;export PATH=$PATH:$JAVA_HOME/bin

    确保 Java 可访问

    java -version

    如果手动安装JDK,会出现如下错误提示

    VM初始化时出错
    java/lang/NoClassDefFoundError: java/lang/Object
    

    在您的 JAVA_HOME/lib 目录中执行以下命令:

    unpack200 -r -v -l "" tools.pack tools.jar

    在你的 JAVA_HOME/jre/lib 中执行以下命令

    ../../bin/unpack200 rt.pack rt.jar ../../bin/unpack200 jsse.pack jsse.rar ../../bin/unpack200 charsets.pack charsets.jar

    确保 Java 可访问

    java -version

【讨论】:

【参考方案12】:

第一步:

sudo gedit ~/.bash_profile

第二步:

JAVA_HOME=/home/user/tool/jdk-8u201-linux-x64/jdk1.8.0_201
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
export JAVA_HOME
export JRE_HOME
export PATH

第三步:

source ~/.bash_profile

【讨论】:

【参考方案13】:

Java 通常安装在/usr/java 找到您拥有的版本,然后执行以下操作:

假设您正在使用 bash(如果您刚刚开始,我建议使用 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-*~ 我有问题,我尝试了所有更新java的方法,但我的版本仍然是jdk1.7,但我设置了jdk1.8的路径【参考方案14】:

如下设置环境变量

编辑系统路径文件/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 以设置路径...

【讨论】:

为什么要导出 JRE_HOME? 它对我不起作用,以前的版本保持默认。我将路径的顺序更改为export PATH=$JAVA_HOME/bin:$PATH 并且版本已更新。我认为从左到右的优先级在这里有效。 已经在这里解决了***.com/questions/24641536/… .bash_profile 和 .bashrc 是特定于 bash 的,而 .profile 在没有自己的特定于 shell 的配置文件的情况下被许多 shell 读取。 /etc/bash_profile(备用 /etc/profile)在用户的 .profile 之前读取以进行系统范围的配置。 此外,您必须注销并登录才能使更改对 /etc/profile 生效,但只有在更改 ~/.bashrc 时才关闭并打开一个新终端【参考方案15】:

您可以从 apt 安装默认的 Ubuntu(17.10) java:

sudo apt install openjdk-8-jdk-headless 

它会为你设置 PATH,如果你需要安装特定版本的 Java,你可以按照这个YouTube

【讨论】:

【参考方案16】: 打开终端(Ctrl+Alt+t

键入

sudo gedit .bashrc 
输入ubuntu用户密码 转到文件的最后一行

在新行中输入以下代码

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
保存文件

键入

source ~/.bashrc

在终端中

完成

【讨论】:

【参考方案17】:

让我简化一下, 首先从Oracle网站下载JDK:Link

2] 然后解压

3] 在 /usr/lib/ 即 /usr/lib/jvm 中创建一个文件夹 (jvm)

4] 将解压出来的文件夹从jdk移动到/usr/lib/jvm/

*注意:使用终端、sudo、mv 命令,即 sudo mv

5] 在 /etc/profile.d/ 创建一个 .sh 文件,例如:/etc/profile.d/myenvvar.sh

6] 在 .sh 文件类型中

导出 JAVA_HOME=/usr/lib/jvm/jdk1.7.0

导出 PATH=$PATH:$JAVA_HOME/bin

*注意:使用终端、gedit 和 sudo 例如:sudo gedit myenvvar.sh

7] 在完成所有这些步骤后关闭计算机并重新启动它

8]打开终端,输入

java-版本

9] 检查输出,然后输入

回显 $JAVA_HOME

10] 检查输出并开心:)

【讨论】:

我的 JAVA_HOME 设置在 /etc/profile.d/maven.sh 中。谢谢。【参考方案18】:

如果你只安装了 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

【讨论】:

【参考方案19】:

要设置系统范围的范围,您需要使用

/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/

【讨论】:

如果您更新任何条目,请使用source /etc/environment 命令重新加载 或注销自动激活新变量(see this question)【参考方案20】:

Oracle Java 的安装:

    从 Oracle 网站下载 tarball(.tar 文件) 通过 sudo tar -xvpzf fileName -C /installation_folder_name 解压 更改文件权限和所有权 在 /etc/profile 中添加以下两行

导出 JAVA_HOME=/home/abu/Java/jdk1.8.0_45/ 导出 PATH=$JAVA_HOME/bin:$PATH

    重启机器,通过java -version和javac -version检查

【讨论】:

【参考方案21】:

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

$ vi ~/.bash_profile

使用语法导出JAVA_HOME=&lt;path-to-java&gt; 如下设置JAVA_HOME。如果你的路径设置为/usr/java/jdk1.5.0_07/bin/java,设置如下:

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

请注意文件 ~/.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

【讨论】:

您确定要将 JAVA_HOME 设置为 java 二进制文件吗?【参考方案22】:

open jdk 安装后通常位于您的 /usr/lib/java-6-openjdk 像往常一样,您需要设置 JAVA_HOME、calsspath 和 Path 在 ubuntu 11.04 中,/etc 中有一个可用的环境文件,您需要在其中设置所有三个路径。然后您需要重新启动系统才能使更改生效..

这是一个可以帮助您的网站 http://aliolci.blogspot.com/2011/05/ubuntu-1104-set-new-environment.html

【讨论】:

【参考方案23】:

Ubuntu 将 openjdk6 安装到 /usr/lib/jvm/java-6-openjdk 路径。因此,您将在/usr/lib/jvm/java-6-openjdk/bin 中拥有垃圾箱。通常为 java 和相关的可执行文件自动设置类路径。

【讨论】:

【参考方案24】:

它应该将 java 放在你的路径中,可能在 /usr/bin/java 中。找到它的最简单方法是打开一个术语并输入“which java”。

【讨论】:

以上是关于如何在 Ubuntu 中设置 Java 环境路径的主要内容,如果未能解决你的问题,请参考以下文章

怎样在Ubuntu中设置环境变量

如何在 Android Studio 中设置 Java SDK 路径?

Java中设置classpathpathJAVA_HOME的作用

如何在 Debian/Ubuntu Docker 容器中设置语言环境?

在 Ubuntu 和 Fedora 中设置 Python 开发环境

如何在虚拟 conda 环境中设置 streamlit 的路径