时代的变迁!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] 在每次调用时重新构

2023-05-11

Java写成,部署在Tomcat 9的webapps目录中。目前的版本采用openjdk 17编译。 本软件是从Go语言通用代码生成器:仙童改写而来。 代码生成物是rust 1.69环境。采用Axum 0.6.18, tower web框架,tokio 1.0 , sqlx 0.3.5数据库访问层和MariaDB, MySQL 8,Pos

2023-05-06

Java写成,部署在Tomcat 9的webapps目录中。目前的版本采用openjdk 17编译。 本软件是从Go语言通用代码生成器:仙童改写而来。 代码生成物是rust 1.65环境。采用Axum, tower web框架,tokio 1.0 , sqlx 0.3.5数据库访问层和MariaDB, MySQL 8,PostgreSQL

2022-10-17

十月中旬,我们推出了 Gitea 1.17.3 版本。与此同时,1.18版本的新特性也几乎确定,追踪 Gitea 的代码仓库可以发现最新的 feature 大部分已进入冻结状态,相信不久之后会放出预览版,心急的小伙伴已经使用 Docker 快速切换到 Dev 分

2023-08-01

Java写成,部署在Tomcat 9的webapps目录中。目前的版本采用openjdk 17编译。 本软件是从Go语言通用代码生成器:仙童改写而来。 代码生成物是rust 1.69环境。采用Axum 0.6.18, tower web框架,tokio 1.0 , sqlx 0.3.5数据库访问层和MariaDB, MySQL 8,Pos

2024-06-28

莲花,是Java写成的Rust通用代码生成器,目前的版本采用openjdk 17编译。软件为一war包,可以部署在 Tomcat 9的webapps目录下,启动即可运行。 项目图片 软件架构 后端代码生成物是rust 1.69环境。采用Axum 0.6.20, tokio 1.32.0 , sqlx 0.7

2022-09-06

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

2024-07-19

莲花,是Java写成的Rust通用代码生成器,目前的版本采用openjdk 17编译。软件为一war包,可以部署在 Tomcat 9的webapps目录下,启动即可运行。 项目图片 软件架构 后端代码生成物是rust 1.69环境。采用Axum 0.6.20, tokio 1.32.0 , sqlx 0.7

2023-09-09

Java写成,部署在Tomcat 9的webapps目录中。目前的版本采用openjdk 17编译。 本软件是从Go语言通用代码生成器:仙童改写而来。 代码生成物是rust 1.69环境。采用Axum 0.6.20, tokio 1.32.0 , sqlx 0.7.1数据库访问层和MariaDB, MySQL 8,PostgreSQL数据

2023-08-25

Java写成,部署在Tomcat 9的webapps目录中。目前的版本采用openjdk 17编译。 本软件是从Go语言通用代码生成器:仙童改写而来。 代码生成物是rust 1.69环境。采用Axum 0.6.20, tower web框架,tokio 1.0 , sqlx 0.7.1数据库访问层和MariaDB, MySQL 8,Pos

2023-06-13

源码。 需要注意的是,现在我的开发平台是Fedora 37上的openjdk 17。所以大家编译源码最好使用openjdk17。编译好的war包运行在apache tomcat 9.0上。 已有jdk8的用户报告默认下载的代码生成器war包在他的平台上无法运行。您如果遇到类

2023-06-16

源码。 需要注意的是,现在我的开发平台是Fedora 37上的openjdk 17。所以大家编译源码最好使用openjdk17。编译好的war包运行在apache tomcat 9.0上。 已有jdk8的用户报告默认下载的代码生成器war包在他的平台上无法运行。您如果遇到类

2023-09-14

Java写成,部署在Tomcat 9的webapps目录中。目前的版本采用openjdk 17编译。 本软件是从Go语言通用代码生成器:仙童改写而来。 代码生成物是rust 1.69环境。采用Axum 0.6.20, tokio 1.32.0 , sqlx 0.7.1数据库访问层和MariaDB, MySQL 8,PostgreSQL数据

2023-08-16

Java写成,部署在Tomcat 9的webapps目录中。目前的版本采用openjdk 17编译。 本软件是从Go语言通用代码生成器:仙童改写而来。 代码生成物是rust 1.69环境。采用Axum 0.6.18, tower web框架,tokio 1.0 , sqlx 0.7.1数据库访问层和MariaDB, MySQL 8,Pos