我的Mac上有几种不同的Java可执行文件:
/usr/bin/java (symlink to /System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/java)
/System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/java
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java
/Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home/bin/java
它们中的大多数是Java 13,除了/Library/Internet Plug-Ins/JavaAppletPlugin.plugin
是Java 8。which java
在命令行中为您提供/usr/bin/java
,而双击 jar 文件将打开/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java
。
这些位置之间有什么区别,每个位置存在的原因是什么?
部分答案:Internet Plug-Ins
文件夹用于 Safari,它包含 Java8,因为这是唯一支持运行小程序的版本:
https://en.m.wikipedia.org/wiki/Java_applet
Java小程序自 2017 年 Java 9 起被弃用,并从 2018 年 9 月发布的 Java SE 11 (18.9( 中删除
加 https://en.m.wikipedia.org/wiki/Java_version_history
Java 11 是当前支持的长期支持 (LTS( 版本("Oracle 客户将获得 Oracle Premier 支持"(;甲骨文在 2019 年 1 月发布了最后一次用于商业用途的"遗留"Java 8 LTS 的免费"公共更新",而至少在 2020 年 12 月之前,它仍将支持 Java 8 和供个人使用的公共更新。[3] Java 10 是以前支持的快速发布版本。Java 10 支持在 Java 11 开始支持的同一天结束,即 2018 年 9 月。Java 7不再公开支持,Java 9已经停止接收更新,因为Java 9是一个短期的快速发布版本,已被Java 10和现在的Java 11取代。
所以在Java9和Java10中存在小程序支持,只是这些版本不再存在,而Java8存在。
你有Java13,因为否则这是当前版本。正如一个位置所说jdk-13.0.1.jdk
,那应该是一个JDK。A/Commands/java
奇怪的"框架"似乎不是"真实"的东西,Java 在所有平台上从bin
和lib
文件夹运行,即使在这些文件夹根本没有"传统"的 Windows 上也是如此。这些命令的东西可能是引用实际JDK的存根/包装器。但是我现在正在平板电脑上打字,所以我实际上无法检查。