ChatGPT解决这个技术问题 Extra ChatGPT

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

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


T
T04435

设置环境变量如下

编辑系统路径文件 /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} 并更新了版本。我认为从左到右的优先级在这里有效。
.bash_profile 和 .bashrc 是特定于 bash 的,而 .profile 在没有自己的特定于 shell 的配置文件的情况下被许多 shell 读取。 /etc/bash_profile(备用 /etc/profile)在用户的 .profile 之前读取以进行系统范围的配置。
此外,您必须注销并登录才能使更改对 /etc/profile 生效,但只有在更改 ~/.bashrc 时才关闭并打开一个新终端
J
Javier C.

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

假设您正在使用 bash(如果您刚刚开始,我建议使用 bash 而不是其他 shell),您可以简单地输入 bash 来启动它。

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

例如。六~/.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的路径
p
prajeesh kumar

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


A
Atul Arvind

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

$ vi ~/.bash_profile

使用语法导出 JAVA_HOME=<path-to-java> 如下设置 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 OR /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 二进制文件吗?
J
J. Scott Elblein

您需要设置 $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 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

export JAVA_HOME

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

$. /etc/environment

现在:

$ echo $JAVA_HOME

这是您的输出:

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

我提到的来源:

https://askubuntu.com/a/175519

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


L
Loich

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

J
J. Scott Elblein

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

/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)
p
pvrforpranavvr

打开终端(Ctrl+Alt+t)

输入 sudo gedit .bashrc

输入ubuntu用户密码

转到文件的最后一行

在新行中键入以下代码 export JAVA_HOME=enter_java_path_here export PATH=$JAVA_HOME/bin:$PATH 例如:export JAVA_HOME=/home/pranav/jdk1.8.0_131 export PATH=$JAVA_HOME/bin:$PATH

保存文件

在终端中输入 source ~/.bashrc

完毕


R
ReSearchIT Eng

如何安装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
J
J. Scott Elblein

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


V
Vinit Solanki

更新 bashrc 文件以添加 JAVA_HOME sudo nano ~/.bashrc 将 JAVA_HOME 添加到 bashrc 文件。 export JAVA_HOME=/usr/java/ 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


E
Etmos

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

/etc/profile.d/jdk.sh

J
J. Scott Elblein

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

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

保存存档

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

这也将在会话中持续存在。

例子 :

https://i.stack.imgur.com/ZwZgG.png

https://i.stack.imgur.com/4lHVX.png


这完美地工作。我最初添加了“”,但这在 Ubuntu 上不起作用。
t
trí nguyễn

步骤1:

sudo gedit ~/.bash_profile

第2步:

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

J
J. Scott Elblein

让我简化一下:

从 Oracle 网站下载 JDK:链接 提取它 在 /usr/lib/ 中创建一个文件夹 (jvm) 即 /usr/lib/jvm 将提取的文件夹从 jdk 移动到 /usr/lib/jvm/

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

在 /etc/profile.d/ 创建一个 .sh 文件 例如:/etc/profile.d/myenvvar.sh 在 .sh 文件类型中

export JAVA_HOME=/usr/lib/jvm/jdk1.7.0

export PATH=$PATH:$JAVA_HOME/bin

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

关闭计算机,完成所有这些步骤并重新启动它 打开终端,然后键入

java -version

检查输出,然后输入

echo $JAVA_HOME


我的 JAVA_HOME 设置在 /etc/profile.d/maven.sh 中。谢谢你。
S
Sai prateek

您现在要做的就是设置 “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

这仅适用于终端会话,不适用于其他地方
F
Firas Nomaan

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


3
32cupo

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

update-java-alternatives --list

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

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

J
J. Scott Elblein

安装后打开的 jdk 通常位于您的 /usr/lib/java-6-openjdk

像往常一样,您需要设置 JAVA_HOME、类路径和路径。

在 ubuntu 11.04 中,/etc 中有一个可用的环境文件,您需要在其中设置所有三个路径。然后您需要重新启动系统才能使更改生效..

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


T
T04435

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

sudo apt install openjdk-8-jdk-headless 

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


c
cigien

我在我的 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

J
J. Scott Elblein

使用以下行在 /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

它应该工作。

笔记:

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


J
J. Scott Elblein

安装 JDK 后,在环境 sudo nano /etc/environment 中设置 JAVA_HOME 并添加行 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 可以看到安装的版本


J
J. Scott Elblein

首先,检查 env var 是否存在

echo $JAVA_HOME

如果存在具有该名称的环境变量,则上述命令将返回环境变量路径。如果它什么都不返回,则先复制环境路径,然后执行以下命令。比如我的 java env 路径是 /usr/lib/jvm/java-11-openjdk-amd64

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

J
J. Scott Elblein

安装 Oracle Java:

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

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

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