我从 Apache Tomcat 站点上的演示幻灯片中看到,Java 11 已在计划中,但它引用了 Java 11 JRE,但该 JRE 不可用。Tomcat 将如何处理没有可供安装的 JRE?
4 回答
tl;博士
只需下载并使用从多家供应商处获得的 JDK。但请务必阅读许可(特别是甲骨文将条款更改为甲骨文品牌的 JDK)。
仅供参考:我一直在运行:
- Tomcat 9.0.14 on Java 11.0.2 使用Azul Systems的Zulu产品
- 来自 AdoptOpenJDK 的 Java 13 上的 Tomcat 9.0.26
…在macOS Mojave上没有问题。
不再有 JRE †</sup>,只有 JDK
Oracle 不再打算让最终用户安装 JRE 或 JDK。浏览器中的Java 小程序和Java Web Start应用程序交付都将被逐步淘汰,最终用户不再需要 JRE。基于 Java 的应用程序应捆绑自己的 Java 实现。唯一有意识地安装 JDK 的人是开发人员和服务器端系统管理员。
重要的:
- 清楚地了解OpenJDK项目的性质,如Wikipedia 中所述
- 阅读由 Java 社区的主要成员撰写的白皮书Java Is Still Free 。
这是一个流程图,可以帮助您在提供 Java 11 实现的各种供应商中找到并做出决定。
†</sup>如果您坚持使用 JRE 而不是 JDK,请在 AdoptOpenJDK.net 的“其他平台”链接下四处寻找。请参阅matson kepson 的回答。但我建议只使用JDK。
采用OpenJDK.net
查看 AdoptOpenJDK 项目网站,了解基于OpenJDK的 Java 构建。
- 下载最新的 JRE 和 JDK:
https ://adoptopenjdk.net - 源代码:
https ://github.com/AdoptOpenJDK/openjdk-jdk11
我已经使用他们的夜间构建来解决 JDK 包中缺少 JRE 的问题https://adoptopenjdk.net/nightly.html?variant=openjdk11
但是到目前为止,他们在 JRE 构建方面存在问题,请搜索 2018 年 11 月 9 日之前的构建,直到他们解决了这个问题。错误链接https://github.com/AdoptOpenJDK/openjdk-build/issues/796
我可能来晚了一点,但我会提到我在使用 Adopt OpenJDK 11 及其 Hotspot 选项运行 Tomcat 9 时没有问题。
此外,Tomcat 9 的默认实现依赖于 log4j2。如果您要在短时间内迁移大量应用程序,这可能是一个问题。我最终能够使 Tomcat9/Java11 与 log4j 1.2.xx 一起工作,这样我就可以延迟日志机制的迁移。基本上,我从我的 Java 8 / Tomcat 8 实现中添加了 log4j JAR 和 log4j.xml,然后修改了设置,但我不是 100% 确定我所做的所有更改。希望这些信息即使不完整也能帮助那些处于类似情况的人,因为没有太多关于如何使其工作的信息。