什么是Mac上的JDK路径?

fil*_*ski 318 java macos

我只在工作时使用Mac,我需要将JAVA_HOME设置为正确的JDK路径.我下载了JDK,安装了它,现在我无法在任何地方找到它.我正在寻找解决方案的互联网,但没有文件夹库/ Java.

Mar*_*nik 636

该位置已从Java 6(由Apple提供)更改为Java 7及更高版本(由Oracle提供).找到这个的最好的通用方法是运行

/usr/libexec/java_home
Run Code Online (Sandbox Code Playgroud)

这是本机支持的方法,可以找到默认Java安装的路径以及所有存在的替代路径.

如果查看其帮助文本(java_home -h),您将看到可以使用此命令在OS X(java_home --exec ...)上可靠地启动Java程序,能够显式指定所需的Java版本和体系结构,甚至可以请求用户如果丢失则安装它.

一个更加行人的方法,但它将帮助您具体跟踪命令java解析的Java安装,如下所示:

  1. which java
    
    Run Code Online (Sandbox Code Playgroud)
  2. 如果它给你类似的东西/usr/bin/java,这是一个到真实位置的符号链接,运行

    ls -l `which java`
    
    Run Code Online (Sandbox Code Playgroud)

    在我的系统上,这输出

    /usr/bin/java -> /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home/bin/java
    
    Run Code Online (Sandbox Code Playgroud)

    从那里你可以读取Java主目录;

  3. 如果usr/bin/java指向另一个符号链接,则递归地应用相同的方法

    ls -l <whatever the /usr/bin/java symlink points to>
    
    Run Code Online (Sandbox Code Playgroud)

如果您从安装Apple的Java开始安装Oracle,那么一个重要的变化就是您获得的设置.在这种情况下,上面的第2步将给你

/usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Commands/java
Run Code Online (Sandbox Code Playgroud)

并且该特定java二进制文件是一个存根,它将java通过查询JAVA_HOME环境变量来解析要调用的实际命令,如果它未设置或未指向Java主目录,则将回退到调用java_home.调试设置时,请务必记住这一点.

  • 在这里找到:/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/ (41认同)
  • 运行`/ usr/libexec/java_home -version 1.8`在几秒钟内帮助了我! (17认同)
  • 谢谢!第2步是一个很棒的提示,带有符号链接! (4认同)
  • 如何删除 Apple 的 Java? (2认同)
  • 正是我想要的,谢谢!使用java_home作为关键字,我在这里找到了一个很好的概述:https://developer.apple.com/library/mac/documentation/Java/Conceptual/Java14Development/01-JavaOverview/JavaOverview.html (2认同)

Che*_*ole 33

您使用的是哪个Mac版本?尝试这些路径

 /System/Library/Frameworks/JavaVM.framework/ OR
 /usr/libexec/java_home
Run Code Online (Sandbox Code Playgroud)

此链接可能有所帮助 - 如何在Mac OS X上设置$ JAVA_HOME环境变量


小智 26

看看JDK是否在:

Library/Java/JavaVirtualMachines/Or/System/Library/Java/JavaVirtualMachines /

查看之前的SO帖子: OSX 10.7 Lion上的JDK


gef*_*fei 6

在我的Mac上:

/System/Library/Frameworks/JavaVM.framework/Home/
Run Code Online (Sandbox Code Playgroud)

顺便问一下,你试过which java吗?


kda*_*bir 5

/System/Library/Frameworks/JavaVM.framework/

另见山狮上的Java 7路径