如何找到 $JAVA_HOME 在哪里设置?

min*_*der 18 java environment-variables

我正在尝试更改 $JAVA_HOME 的值,我似乎无法找到当前正在哪个文件中设置它。我不记得上次我在哪里设置的。已经尝试过如何确定环境变量来自哪里?但我需要(编辑)一个可以设置变量的文件列表。

Joh*_*024 37

您没有指定外壳。所以,我会假设bash. 下一个问题是:你是只为你的用户设置还是系统范围的?如果您仅为您的用户设置它,请运行:

grep JAVA_HOME  ~/.bash_profile ~/.bash_login ~/.profile ~/.bashrc
Run Code Online (Sandbox Code Playgroud)

如果您在系统范围内设置它,那么它可能会因发行版而异,但请尝试:

grep JAVA_HOME /etc/environment /etc/bash.bashrc /etc/profile.d/* /etc/profile
Run Code Online (Sandbox Code Playgroud)

如果以上都没有答案,你可以撒个更大的网:

grep -r JAVA_HOME /etc
grep -r JAVA_HOME ~/
Run Code Online (Sandbox Code Playgroud)

另请参阅如何确定环境变量来自何处中的建议。


Sté*_*las 8

zsh

zsh -xl
Run Code Online (Sandbox Code Playgroud)

bash

PS4='+$BASH_SOURCE> ' BASH_XTRACEFD=7 bash -xl 7>&2
Run Code Online (Sandbox Code Playgroud)

这将模拟登录 shell 并显示已完成的所有内容(除了使用 重定向 stderr 的区域zsh)以及当前正在解释的文件的名称。

因此,您需要做的就是JAVA_HOME在该输出中查找。(您可以使用该script命令来帮助您存储该输出)。