【发布时间】:2012-12-26 21:26:08
【问题描述】:
如何检查 Mac 上是否安装了 Java SDK?
这个有命令行吗?
【问题讨论】:
-
" that software is not running" 错误输出是什么?
如何检查 Mac 上是否安装了 Java SDK?
这个有命令行吗?
【问题讨论】:
javac -version 在终端中就可以了
【讨论】:
您可以利用OS X 上的java_home 辅助二进制文件来满足您的需求。
列出已安装 JDK 的所有版本:
$ /usr/libexec/java_home -V
Matching Java Virtual Machines (2):
1.8.0_51, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home
1.7.0_79, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home
要请求特定JDK版本的JAVA_HOME路径,可以这样做:
$ /usr/libexec/java_home -v 1.7
/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home
$ /usr/libexec/java_home -v 1.8
/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home
您可以像这样在脚本中利用上述命令:
REQUESTED_JAVA_VERSION="1.7"
if POSSIBLE_JAVA_HOME="$(/usr/libexec/java_home -v $REQUESTED_JAVA_VERSION 2>/dev/null)"; then
# Do this if you want to export JAVA_HOME
export JAVA_HOME="$POSSIBLE_JAVA_HOME"
echo "Java SDK is installed"
else
echo "Did not find any installed JDK for version $REQUESTED_JAVA_VERSION"
fi
您也许可以执行 if-else 并检查多个不同版本的 java。
如果您更喜欢 XML 输出,java_home 还有一个 -X 选项以 XML 输出。
$ /usr/libexec/java_home --help
Usage: java_home [options...]
Returns the path to a Java home directory from the current user's settings.
Options:
[-v/--version <version>] Filter Java versions in the "JVMVersion" form 1.X(+ or *).
[-a/--arch <architecture>] Filter JVMs matching architecture (i386, x86_64, etc).
[-d/--datamodel <datamodel>] Filter JVMs capable of -d32 or -d64
[-t/--task <task>] Use the JVM list for a specific task (Applets, WebStart, BundledApp, JNI, or CommandLine)
[-F/--failfast] Fail when filters return no JVMs, do not continue with default.
[ --exec <command> ...] Execute the $JAVA_HOME/bin/<command> with the remaining arguments.
[-R/--request] Request installation of a Java Runtime if not installed.
[-X/--xml] Print full JVM list and additional data as XML plist.
[-V/--verbose] Print full JVM list with architectures.
[-h/--help] This usage information.
【讨论】:
输入终端:
which javac
它应该显示类似的东西
/usr/bin/javac
【讨论】:
javac shim。它与是否安装 Java 无关。
下面的命令效果很好:
javac -version
我还通过导航到我的 Mac 上的 Java 文件夹手动验证
/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk
【讨论】:
/usr/bin/java_home 工具在未安装 java 时返回 1。
所以你可以通过下一种方式检查是否安装了java:
/usr/libexec/java_home &> /dev/null && echo "installed" || echo "not installed"
【讨论】:
如果您在 Mac OS Big Sur 上,那么您的 java 安装可能很混乱。 我找到了有关如何解决本文问题的信息: https://knasmueller.net/how-to-install-java-openjdk-15-on-macos-big-sur
sudo mv openjdk-15.0.2_osx-x64_bin.tar.gz /Library/Java/JavaVirtualMachines/
cd /Library/Java/JavaVirtualMachines/
sudo tar -xzf openjdk-15.0.2_osx-x64_bin.tar.gz
sudo rm openjdk-15.0.2_osx-x64_bin.tar.gz
注意:它可能是 15.0.3 或更高版本,具体取决于您的下载日期。
/usr/libexec/java_home -v15 并复制输出.bash_profile 或.zshrc 文件中,具体取决于您使用的shell。您的主目录中可能只有这些文件之一(~/.bash_profile 或 ~/.zshrc)。JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-15.0.2.jdk/Contents/Home
source ~/.bash_profile 或 source ~/.zshrc
java -v
【讨论】:
只需输入javac。如果已安装,您将获得使用信息,否则只会询问您是否要安装 Java。
【讨论】:
确保正确定义项目的 JDK 并重启 IntelliJ(完全重启)。
【讨论】:
运行命令查看:
javac-版本
您也可以前往特定位置进行手动验证,然后进行检查。为此,请在 mac 终端中运行以下命令
cd /Library/Java/JavaVirtualMachines/
然后再次在终端中运行ls 命令。现在您可以看到您的计算机中是否存在 jdk 版本和软件包。
【讨论】: