我需要在 MacOS 上设置 JAVA_HOME 吗?
Do I need to set JAVA_HOME on MacOS?
我是 Java 的新手。许多关于在 Mac 上安装 Java 的教程都建议设置 JAVA_HOME
环境变量。但是,Java 在我的计算机上工作正常,JAVA_HOME
变量为空!
我已经从命令行成功使用了Java(使用javac
和java
), 在 IntelliJ IDEA 中(在“项目结构设置”中我设置了“JDK 主路径”到 /Library/Java/JavaVirtualMachines/jdk-16.0.1.jdk/Contents/Home)
并在 Sublime Text 中编译和 运行 Java 文件。
所以,我的问题是:
- 为什么 Java 在我的 Mac 上没有
JAVA_HOME
也能正常工作?
- 我需要设置
JAVA_HOME
吗?没有它会有什么后果?也许它对某些事情不是必需的,但对其他事情来说是必需的?那这些东西是什么?
- 此行为在其他操作系统上是否不同?
一些命令的输出是:
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 为您做到这一点
我是 Java 的新手。许多关于在 Mac 上安装 Java 的教程都建议设置 JAVA_HOME
环境变量。但是,Java 在我的计算机上工作正常,JAVA_HOME
变量为空!
我已经从命令行成功使用了Java(使用javac
和java
), 在 IntelliJ IDEA 中(在“项目结构设置”中我设置了“JDK 主路径”到 /Library/Java/JavaVirtualMachines/jdk-16.0.1.jdk/Contents/Home)
并在 Sublime Text 中编译和 运行 Java 文件。
所以,我的问题是:
- 为什么 Java 在我的 Mac 上没有
JAVA_HOME
也能正常工作? - 我需要设置
JAVA_HOME
吗?没有它会有什么后果?也许它对某些事情不是必需的,但对其他事情来说是必需的?那这些东西是什么? - 此行为在其他操作系统上是否不同?
一些命令的输出是:
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 为您做到这一点