我需要在 MacOS 上设置 JAVA_HOME 吗?

Do I need to set JAVA_HOME on MacOS?

我是 Java 的新手。许多关于在 Mac 上安装 Java 的教程都建议设置 JAVA_HOME 环境变量。但是,Java 在我的计算机上工作正常,JAVA_HOME 变量为空!

我已经从命令行成功使用了Java(使用javacjava), 在 IntelliJ IDEA 中(在“项目结构设置”中我设置了“JDK 主路径”到 /Library/Java/JavaVirtualMachines/jdk-16.0.1.jdk/Contents/Home) 并在 Sublime Text 中编译和 运行 Java 文件。

所以,我的问题是:


一些命令的输出是:

echo $JAVA_HOME 输出一个空行

echo $CPPFLAGS 输出空行

which java

/usr/bin/java

echo $PATH 包含 /usr/bin

Why does Java work without the JAVA_HOME on my Mac?

Java 不需要设置 JAVA_HOME 即可在您的系统中运行。然而,某些应用程序(例如 Tomcat、Maven 等)会查找 JAVA_HOME 系统变量,如果未设置其值,它们可能会提示您这样做。

Do I need to set up JAVA_HOME at all? What would be the consequences of not having it? Maybe it is not essential for some things, but is required for other things to work? Then what are these things?

上面已经回答了。

Is this behavior different on other operating systems?

所有操作系统都一样。

这取决于程序。

大多数依赖 Java 的程序都遵循这样的逻辑

if $JAVA_HOME ; then
  use JAVA_HOME/bin/java
elif $(which java); then
  use java command on PATH
else
  error
fi

也就是说,要一致,您应该设置它,并使用 SDKman 或 Homebrew 为您做到这一点