ChatGPT解决这个技术问题 Extra ChatGPT

Mac OS X 上的 Java 安装在哪里?

我刚刚从 here 下载了 Mac OS 10.7.5 上的 Java 7u17,然后成功安装了它。为了进行一些 JNI 编程,我需要知道 Java 在我的 Mac 上的安装位置。

我以为在/Library/Java/JavaVirtualMachines/文件夹里面会有一个叫1.7.0.jdk之类的文件夹,结果发现文件夹是空的。这通过在终端中运行 ls /Library/Java/JavaVirtualMachines/ 得到确认。我已经尝试搜索它以了解它是否安装在其他地方,但这似乎并没有带来任何好处。

有人可以告诉我我的 Mac 上安装了 Java 的位置吗?

关闭选民/重新开启者 - 这个问题是 explicitly not off-topic (questions about tools commonly used by programmers)。不幸的是,它被 meta 赶上了。
我在 /Library/Java/JavaVirtualMachines/ 中找到了 JDK。我正在使用 macOS Big Sur(11.0.1)。并且安装的jdk版本是1.8.0

A
Arsen Khachaturyan

在终端 shell 上使用 /usr/libexec/java_home -v 1.8 命令找出您的 Java 1.8 主目录在哪里

如果您只想找出最新版本 Java 的主目录,请忽略版本。例如/usr/libexec/java_home


我之所以遇到这个问题,是因为我在 mac 上的 eclipse 中遇到错误,因为我在程序“import java.util.*”的第一行遇到错误。我强烈怀疑这是因为 java 路径设置不正确或其他原因(即使我之前设置过一次)。我在这个答案中输入了命令,我得到了一个目录。我可以将该目录粘贴到“本机库文件夹配置”窗口中的文本框中吗?或者这个目录是否属于其他地方?
export JAVA_HOME=`/usr/libexec/java_home` 添加到 .bash_profile,因此始终设置 JAVA_HOME(注意 libexec 命令周围的反引号)
如果您只想知道您的 mac 上是否安装了 JDK,请省略版本号并从终端运行:$ echo $(/usr/libexec/java_home)
在 Mac 10.12.3 上,我们应该 /usr/libexec/java_home -- v 显示最新版本的 java
请注意,macOS Big Sur 更改了 java_home 命令的行为。不,如果 JAVA_HOME 环境变量已经设置为一个有效的 JDK,它会返回,它会忽略 -v 参数。如果 JAVA_HOME 设置为无效文件夹,则 java_home 命令根本不起作用。要获得合理的输出,您必须在调用 /usr/libexec/java_home 之前取消设置 JAVA_HOME
S
Shahab Rauf

你可以使用

/usr/libexec/java_home

终端中的命令以了解安装 Java 的路径。


我比接受的答案更喜欢这个解决方案,因为它独立于安装的 JVM 版本。
这没有找到 Oracle 安装的我的 java 8 版本。
为什么你有echo $(...)?不只是 /usr/libexec/java_home 做同样的事情吗?
接受的答案对我不起作用,但这有效! (我通常不是 mac/unix 用户)
@PaŭloEbermann 如果没有美元符号和括号,它对我不起作用。
T
Thunderforge

事实证明,我实际上安装了 Java 7 JRE,而不是 JDK。正确的下载链接是 here。安装后,jdk1.7.0jdk 出现在 JavaVirtualMachines 目录中。


对我来说,它在 /Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk 下(知道 JDK 1.6 的路径是:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/
在 ~/.bash_profile 处导出 JAVA_HOME=$(/usr/libexec/java_home)
M
Morrie

如果您只安装 JRE,它似乎位于:

/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home

你不应该依赖这个现有的。如果您需要 JRE,请捆绑在您自己的应用程序中。
使用包含空格字符的路径设置 JAVA_HOME 具有挑战性!我没有成功...
您可以在某处创建指向该目录的链接并将 JAVA_HOME 设置为该链接
这是“Java”系统偏好设置面板似乎安装它的地方。
@AntoineRosset,您可以这样设置:export JAVA_HOME=/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
A
Abimaran Kugathasan

使用 unix find 功能查找已安装的 java...

sudo find / -name java

对于通常可访问的命令,您不需要 sudo 来运行 find。如果您不想看到有关不可访问目录的错误消息,请删除这些消息,而不是不必要地使用 root 权限。一直使用 sudo 是一个坏习惯。将 stderr 重定向到 /dev/null,如下所示:find / -name java 2> /dev/null
如果我也需要查看无法访问的目录,我该怎么办?
Walter 的观点是 java 二进制文件将是世界可读的,因此 sudo 不是必需的。你的回答还是有用的:)
是的,我就是用这个找到src.zip(java jdk的源代码)
在 ~/.bash_profile 处导出 JAVA_HOME=$(/usr/libexec/java_home)
J
Jaywant Khedkar

试试这个,这是在 Mac OS X 中找到 java 安装路径的简单方法,

) /Library 即 Macintosh HD/Library

https://i.stack.imgur.com/7BNFT.png

2)单击Library,我们找到Java文件夹。

https://i.stack.imgur.com/jUGhY.png

3)所以最终路径是

/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home

希望这对某人有帮助。


当您必须从 IDE 显式指向 JDK 时非常有用。谢谢
我有多稠密?我的终端说我在 /Library/Java/JavaVirtualMachines/ 中安装了 2 个 jdk,但是当我在 finder 中导航到该目录时找不到它们......我能得到多密集......
@SoftwareSavant,请参考stackoverflow.com/a/14875241答案,这可能对您有所帮助。
j
jones j alapat

如果你输入

java -verbose 

这也给出了加载 jar 的位置,因此也给出了 java 路径。


我在 ~/.bash_profile 添加了 export JAVA_HOME=$(/usr/libexec/java_home)。
S
Shawn

Mac OS 的 Java 包结构与 Windows 有点不同。不要为此感到不安,因为开发人员只需要设置 PATHJAVA_HOME

所以在 .bash_profile 中设置 JAVA_HOMEPATH 如下。此示例适用于 Java 6:

export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
export PATH=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin:$PATH

这会从路径中删除所有其他内容吗?仅当您只使用 Java 而系统中没有其他内容时才这样做。
在 ~/.bash_profile 处导出 JAVA_HOME=$(/usr/libexec/java_home)。
M
Mina Fawzy

只需在转到文件夹中写入 /Library/Java/JavaVirtualMachines/
-->进入查找器


好的,我刚试过这个,我设法导航到目录。为什么我不能在 Finder 中正常导航到该文件夹?这只是 Apple 更烦人吗... 更烦人的是,Gradle 4.3 版不适用于除 Java 8 之外的任何 Java 版本
在 ~/.bash_profile 处导出 JAVA_HOME=$(/usr/libexec/java_home)
m
manny

已编辑:当前 java 版本的别名是 /Library/Java/Home

有关详细信息:a link


这将是最新版本的别名,一旦安装,它将正确指向 Java 7 SDK。
此链接仅用于遗留用途,不会通过安装 Java 7 进行更新。请勿使用此路径。
我在 ~/.bash_profile 更新了 export JAVA_HOME=$(/usr/libexec/java_home)。
P
Pranay Aryal

在终端中输入 which java 以显示它的安装位置。


是的,在 ~/.bash_profile 处导出 JAVA_HOME=$(/usr/libexec/java_home)。
A
Abdennour TOUMI

为了 :

OS X:10.11.6

爪哇:8

我确认@Morrie 的回答。

   export JAVA_HOME=/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home;

但是,如果您正在运行容器,您的生活会更轻松


我认为这应该是一个评论。
我不认为,因为有一个附加值是`export JAVA_HOME=`。 ...你呢@Thunderforge
在 ~/.bash_profile 处导出 JAVA_HOME=$(/usr/libexec/java_home)。
T
Tony Kroch

我刚刚安装了 Java SE 7 版本 21 的 JDK,发现它安装在与 Apple 的 Java 6 不同的目录中。它位于 /Library/Java... 而不是 /System/Library/Java... . 运行 /usr/libexec/java_home -v 1.7 与 -v 1.6 将确认这一点。


在 ~/.bash_profile 处导出 JAVA_HOME=$(/usr/libexec/java_home)
c
codercat

我尝试了 serkan 的解决方案,它在 OS X Mavericks 上找到了 java 7 的位置。它驻留在 "/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/" 但要使其成为默认 JDK 我必须将主目录中 .bash_profile 中的 JAVA_HOME 系统变量设置为 "/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/" 以便它现在可以启动并运行,这要归功于 serkan 的想法


在 ~/.bash_profile 处导出 JAVA_HOME=$(/usr/libexec/java_home)。
D
Derek Lee

如果您安装了多个 Java 版本,请使用:

$ /usr/libexec/java_home --verbose

或者:

$ /usr/libexec/java_home -V(这是一个大写的 V!)

列出所有版本和架构。

样本输出:

$ /usr/libexec/java_home -V
Matching Java Virtual Machines (4):
    12.0.1 (x86_64) "Oracle Corporation" - "Java SE 12.0.1" /Library/Java/JavaVirtualMachines/jdk-12.0.1.jdk/Contents/Home
    1.8.202.08 (x86_64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
    1.8.0_282 (x86_64) "Amazon" - "Amazon Corretto 8" /Users/username/Library/Java/JavaVirtualMachines/corretto-1.8.0_282/Contents/Home
    1.8.0_202 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk-12.0.1.jdk/Contents/Home

T
Tal Hakmon

尝试在此处签到
/Library/Java/JavaVirtualMachines


u
user9869932

如果您使用 sdkman

您可以使用 sdk home java <installed_java_version> 检查它

$  sdk home java 8.0.252.j9-adpt
/Users/admin/.sdkman/candidates/java/8.0.252.j9-adpt

你可以得到你安装的java版本

$ sdk list java

P
PaulNUK

System Preferences 然后 Java control panel 然后 Java 然后 View 将显示当前安装的默认 JRE 的确切位置。


在 ~/.bash_profile 处导出 JAVA_HOME=$(/usr/libexec/java_home)
S
Suraj Rao

MacOS 大苏尔

在 .zshrc 文件下添加以下内容。如果 .zshrc 不存在,则创建并添加。

export JAVA_HOME=`/usr/libexec/java_home`