我怎样才能找到我定义的地方 JAVA_HOME
How can I found where I defined JAVA_HOME
这是我的系统信息
wangbo@ubuntu:~$ uname -a
Linux ubuntu 4.4.0-72-generic #93-Ubuntu SMP Fri Mar 31 14:07:41 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
当我检查 java 版本时
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
但是当我回显 $JAVA_HOME
/usr/lib/jvm/java-9-oracle
不匹配,好像我在某处定义了$JAVA_HOME,但是我找不到,谁能帮我我怎么找到我的$JAVA_HOME defined
其他有用信息:
- 我已经安装和卸载了 jdk9 作为第一个 jdk 之前
- 它不在 ~/.bashrc
- 它不在 /etc/bash.bashrc
中
- 它不在 ~/.profile
更新
wangbo@ubuntu:~$ more /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
你最好检查一下 /etc/environment
在我的 ubuntu 14.04 系统上,内核 4.4.0-71-generic 我使用了以下内容:
$ echo $JAVA_HOME
/usr/lib/jvm/java-8-oracle
您的 Java 命令是从 PATH
变量中提取的。很可能,您已将 Java7 添加到您的路径中。检查您的 .profile、.bash_profile、/etc/profile 和 /etc/environment 文件。
JAVA_HOME
被某些 scripts/tools 使用(想到 ant
)- select java 命令。
尝试
sudo find / -path /sys -prune -o -path /proc -prune -o -type f -exec grep -l JAVA_HOME {} + 2>/dev/null
抱歉,我的第一个版本的回答将永远无法完成。但这只需要一些时间,但它会找到文件。
1) JAVA_HOME
很可能在 /etc/profile.d/jdk.sh
和 /etc/profile.d/jdk.csh
中定义,不幸的是,这些文件不受 update-alternatives
系统管理。
2) 运行 哪个可执行文件应该取决于 update-alternatives
系统,但如果您在 PATH
中强制使用特定版本,则不会。
许多 java 应用程序实际上是由脚本调用的,这些脚本选择了首选的 jvm 来设置一致的环境,并且不应受到您的问题的影响。最好为来自 shell 的免费 java 调用提供一致的环境,但是,在大多数安装中,我知道这是手动实现的...
一些 java 发行版根本不需要 JAVA_HOME。在其他情况下,您需要它。我的建议是仅当您需要时才定义 JAVA_HOME 。如果是这种情况,请在 shell 脚本中定义它并使用该脚本调用您需要该特定值的命令。
编辑:/etc/profile.d/jdk.sh
似乎是由 oracle-java8-set-default
安装的。
# Uninstall the package (choose one)
sudo apt purge oracle-java8-set-default
sudo apt remove --purge oracle-java8-set-default
# Configure the desired Java binary
sudo update-alternatives --config java
sudo update-alternatives --config javac
这是我的系统信息
wangbo@ubuntu:~$ uname -a
Linux ubuntu 4.4.0-72-generic #93-Ubuntu SMP Fri Mar 31 14:07:41 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
当我检查 java 版本时
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
但是当我回显 $JAVA_HOME
/usr/lib/jvm/java-9-oracle
不匹配,好像我在某处定义了$JAVA_HOME,但是我找不到,谁能帮我我怎么找到我的$JAVA_HOME defined
其他有用信息:
- 我已经安装和卸载了 jdk9 作为第一个 jdk 之前
- 它不在 ~/.bashrc
- 它不在 /etc/bash.bashrc 中
- 它不在 ~/.profile
更新
wangbo@ubuntu:~$ more /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
你最好检查一下 /etc/environment
在我的 ubuntu 14.04 系统上,内核 4.4.0-71-generic 我使用了以下内容:
$ echo $JAVA_HOME
/usr/lib/jvm/java-8-oracle
您的 Java 命令是从 PATH
变量中提取的。很可能,您已将 Java7 添加到您的路径中。检查您的 .profile、.bash_profile、/etc/profile 和 /etc/environment 文件。
JAVA_HOME
被某些 scripts/tools 使用(想到 ant
)- select java 命令。
尝试
sudo find / -path /sys -prune -o -path /proc -prune -o -type f -exec grep -l JAVA_HOME {} + 2>/dev/null
抱歉,我的第一个版本的回答将永远无法完成。但这只需要一些时间,但它会找到文件。
1) JAVA_HOME
很可能在 /etc/profile.d/jdk.sh
和 /etc/profile.d/jdk.csh
中定义,不幸的是,这些文件不受 update-alternatives
系统管理。
2) 运行 哪个可执行文件应该取决于 update-alternatives
系统,但如果您在 PATH
中强制使用特定版本,则不会。
许多 java 应用程序实际上是由脚本调用的,这些脚本选择了首选的 jvm 来设置一致的环境,并且不应受到您的问题的影响。最好为来自 shell 的免费 java 调用提供一致的环境,但是,在大多数安装中,我知道这是手动实现的...
一些 java 发行版根本不需要 JAVA_HOME。在其他情况下,您需要它。我的建议是仅当您需要时才定义 JAVA_HOME 。如果是这种情况,请在 shell 脚本中定义它并使用该脚本调用您需要该特定值的命令。
编辑:/etc/profile.d/jdk.sh
似乎是由 oracle-java8-set-default
安装的。
# Uninstall the package (choose one)
sudo apt purge oracle-java8-set-default
sudo apt remove --purge oracle-java8-set-default
# Configure the desired Java binary
sudo update-alternatives --config java
sudo update-alternatives --config javac