时代的变迁!OpenJDK 17 项目即将废弃,请注意迁移到OracleJDK 18


为了推动 Java 向前发展,OpenJDK 17 打算弃用,以便与旧的小应用 API ( JEP 398 )一起删除。

安全管理器功能可追溯到 Java 1.0,在我们用按键手机或者诺基亚在 Web 浏览器上下载 Java 游戏小应用(Applet)的时代,安全管理器通过在沙箱中运行小游戏,从而拒绝它访问文件系统或网络等资源,保护我们的设备的安全性和数据的隐私性。安全管理器会批准所有涉及可信任代码资源访问的操作,但拒绝不可信代码的资源访问。

但随着时代变迁和 Java 库的激增,安全管理器变得力不从心,随着搭载 Android 智能手机的普及,Java 平台也不再支持小应用这种格式,安全管理器使用的环境变得更少了。多年来,它一直不是保护客户端 Java 代码的主要手段,也很少用于保护服务器端代码。

安全管理器三宗罪:

  • 脆弱的权限模型

安全管理器必须授予应用程序执行操作所需的所有权限,无法进行部分安全性访问控制。例如,用户担心非法的访问数据,因此要求安全管理器授予应用只从特定目录读取文件的权限,但只有文件读取权限是不够的,因为应用程序肯定会使用 Java 类库中除了读取文件之外的其他操作(例如写入文件),而这些其他操作将被安全管理器拒绝。

  • 困难的编程模型

安全管理器通过检查一次操作的所有代码权限,以决定来批准安全敏感操作,使得编写与安全管理器一起运行的库变得困难,因为库开发人员不会记录其库代码所需的一切权限。

  • 性能差

安全管理器的核心是一个复杂的访问控制算法,通常会带来不可接受的性能损失。因此,默认情况下,对于在命令行上运行的 JVM,安全管理器始终处于禁用状态。

基于上述种种原因,这个见证移动设备发展史的功能即将从 Java 中移除,按键手机和它的 Java 小应用也随岁月一去不返。


相关文章

2022-09-19

部 bean 的注入重构 #580 添加 openjdk17 以构建,删除 oraclejdk9 (EOL) 并从 oraclejdk 切换到 openjdk 以修复 Travis CI 构建 #584 将 maven-surefire-plugin 更新为 3.0.0-M7 #587 [WW-5207] 默认使用 ASM 9 #586 [WW-5203] 在每次调用时重新构

2022-09-06

多少。 该指数可以用来检查你的编程技能是否还能跟上时代的步伐,或者在开始建立一个新的软件系统时,基于指数对采用何种编程语言做出决策。 TIOBE 指数的定义方式,以及详细榜单信息均可查看官网。

2022-08-08

Eclipse OpenJ9 v0.33.0 现已发布,Eclipse OpenJ9 是 OpenJDK 的 JVM,由 IBM 创建并捐赠给 Eclipse 基金会。此 Java 虚拟机经过优化,具备占用空间小、启动速度快以及吞吐量高等优势。 自 0.30.0 版以来,此版本包含以下新功能和显着更改

2022-09-20

于在--version编译器标志中指定 C++ 我们已使用 CMake 项目为 Visual Studio 添加了对 vcpkg 项目的支持。 对于包含 vcpkg 清单的项目,将在项目打开时自动激活环境。 可以在Visual Studio 博客文章中的 vcpkg 环境激活中了解有关此操作

2022-08-21

JetBrains 博客显示: IntelliJ 项目的源代码最近迁移到了 Java 17。 尽管仍然编译了一些模块与旧 Java 版本兼容,以支持在老版本 Java 下运行用户的项目。但现在大多数平台和插件模块都使用 Java 17,而即将推出的所有基于 IntelliJ 的

2022-08-12

离上一组 Spring Web Flow 发布已经快 4 年了。尽管如此,该项目仍然很好地满足了特定需求,可以说比其他替代方案更好,并且仍然在积极使用。虽然新版本没有强大的驱动力,但即将推出的 Spring Framework 6 带来了 Java 17 基线并转

2022-01-18

在 Faker.js 作者恶意破坏自己的开源项目 Faker.js 和 colors.js 一周后,Faker.js 现在已成为由社区控制的项目。目前项目的管理团队由 8 名来自不同背景和公司的工程师组成。 Faker.js 是十分流行的 Node.js 工具库,提供了各种类

2022-07-07

b 在验证 TLS 证书时检查 IP SANs 在 macOS 和 Windows 中删除废弃的 sbrk 添加 bconsole.jlist 命令,从常规列表命令中获得 JSON 输出 确保 Director 将拒绝来自 FD 的目录更新 在更多的操作系统中尊重 "nodump" 标志,而不仅仅是 BSD 系统

2022-07-03

成工具,至今已创立十多年。自 2005 年成立以来,Jenkins 项目经历了多次 Java 迁移。目前从 Java 8 到 Java 11 的迁0移与 Jenkins 项目中的迁移历史是一致的。 开发者 Basil Crow 在博客中解释称: Jenkins 项目在短期内可能会保留在 Java

2022-05-24

更快、更顺畅。 更好的安全性,因为 JBR17 基于最新的 OpenJDK LTS。 JetBrains Runtime 17 利用 Metal API 在 macOS 上提供更好的渲染性能。 提高 macOS 上的可访问性,因为 JBR17 具有与 VoiceOver screen reader 的集成。 Vector AP

2022-04-02

少,有趣的是考虑我们是否可能正在进入一个相对停滞的时代。当然,新的语言会不断涌现,有些可能会由于新功能的添加或外部因素(例如下面的 Dart)而兴起;但当我们环顾整个行业时,可能正在形成某种平衡的形成。语言

2022-06-28

科技媒体 Phoronix 对从 OpenJDK 8 到 OpenJDK 19 的多个 JDK 版本进行了性能基准测试。此外,作为参考对比,还加入了两个替代实现方案:OpenJ9 和 GraalVM CE。 测试环境: 搭载 Intel Core i5 12600K CPU、运行 Ubuntu 22.04 LTS 的电脑

2022-08-26

在过去的十年里,从早期的 GTK3 时代开始,"Broadway" 后端就已诞生,它支持将 GTK 界面渲染到 HTML5 Web 浏览器中。不过除了用于演示和其他玩具级别的应用之外,这个 GTK HTML5 后端并没有被广泛使用,诸如 Ubuntu 和 Debian 发行版也没

2021-12-30

Google 已经开始在为 Chrome 版本号进入三位数时代做准备。 据介绍,2022 年上半年,Chrome 的主版本号将达到三位数:100。由于此前主版本号从一位数变为两位数时,用户代理解析库曾出现过问题,所以对于即将到来的 Chrome 100