有没有办法找到安装在OSX上的Java版本的完整列表?

有没有办法找到安装在OSX上的Java版本的完整列表?,java,macos,Java,Macos,我试图找到安装在MacOSX上的JDK版本的完整列表 我确实尝试了javac-version,但它只显示在bashrc中设置的当前版本 任何帮助都将不胜感激。Mac OS X有一个很酷的二进制文件(/usr/libexec/java_home),可以从当前用户的设置返回java主目录的路径。您可能需要发布: /usr/libexec/java_home -V 它会打印完整的JVM列表,其中包含如下架构: Matching Java Virtual Machines (2): 13, x

我试图找到安装在MacOSX上的JDK版本的完整列表

我确实尝试了
javac-version
,但它只显示在bashrc中设置的当前版本


任何帮助都将不胜感激。

Mac OS X有一个很酷的二进制文件(/usr/libexec/java_home),可以从当前用户的设置返回java主目录的路径。您可能需要发布:

/usr/libexec/java_home -V
它会打印完整的JVM列表,其中包含如下架构:

Matching Java Virtual Machines (2):
    13, x86_64: "OpenJDK 13"    /Library/Java/JavaVirtualMachines/openjdk-13.jdk/Contents/Home
    1.8.0_265, x86_64:  "AdoptOpenJDK 8"    /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/openjdk-13.jdk/Contents/Home
/usr/libexec/java_home -v 1.8
/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
如果要打印特定JDK版本的JAVA_主路径,可以这样做:

Matching Java Virtual Machines (2):
    13, x86_64: "OpenJDK 13"    /Library/Java/JavaVirtualMachines/openjdk-13.jdk/Contents/Home
    1.8.0_265, x86_64:  "AdoptOpenJDK 8"    /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/openjdk-13.jdk/Contents/Home
/usr/libexec/java_home -v 1.8
/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
您可以在下面看到完整的使用选项:

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.
用法:java_home[选项…] 从当前用户的设置返回Java主目录的路径。 选项: [-v/--version]过滤“JVMVersion”表单1.X(+或*)中的Java版本。 [-a/--arch]筛选JVM匹配的体系结构(i386、x86_64等)。 [-d/--datamodel]筛选能够使用-d32或-d64的JVM [-t/--task]将JVM列表用于特定任务(小程序、WebStart、BundleApp、JNI或命令行) [-F/--failfast]当筛选器没有返回JVM时失败,不要使用默认值继续。 [--exec…]使用其余参数执行$JAVA_HOME/bin/。 [-R/--request]如果未安装,则请求安装Java运行时。 [-X/--xml]将完整的JVM列表和附加数据打印为xml plist。 [-V/--verbose]打印带有架构的完整JVM列表。 [-h/--help]此用法信息。
您可以使用
java\u home
二进制文件执行此任务

/usr/libexec
包括不打算由用户或shell脚本直接执行的内部二进制文件
java_home
就是这样一个二进制文件,用选项
-V
调用它将打印带有架构的完整JVM列表

     /usr/libexec/java_home -V
可能的副本