<applet>标签已彻底废弃,现代浏览器因移除Java插件支持而无法运行;替代方案需按用途选择:图表动画用canvas/JS,Swing组件需重写UI,后端计算可转REST或WebAssembly。
HTML 的 <applet> 标签已彻底废弃,无法迁移 —— 它不是“需要适配”,而是根本不能在现代浏览器中运行。
Chrome 45、Firefox 52、Edge 14 起就完全移除了 Java 插件支持;JDK 9+ 默认不带 JRE 插件接口;Oracle 在 JDK 11 中正式删除了 appletviewer 和所有 Applet API。浏览器报的典型错误是:net::ERR_BLOCKED_BY_CLIENT 或控制台直接提示 Failed to load resource: net::ERR_UNKNOWN_URL_SCHEME(因尝试加载 java: 协议)。
Applet 用途差异极大,迁移路径完全不同:
Graphics2D 绘制折线图)→ 改用 canvas + JavaScript(Chart.js、D3.js 或原生 requestAnimationFrame)JButton、JTable)→ 没有直接等价物,需重写 UI 层,用 HTML 表单 + fetch 调后端逻辑fetch 调用,或用 GraalVM 编译为 WebAssembly(小众但可行).jnlp),但该技术也已被弃用,且 Chrome/Firefox 已不支持,仅部分企业内网 IE 旧环境可能凑合这些看似能“跑起来”的做法实际不可靠:
<object> 或 <embed> 手动包裹 applet.jar → 浏览器直接忽略或报 SecurityError
archive、code、width 等旧属性到 <div> → 属性无效,Java 类不会加载真正可行的迁移,本质是解耦:把原来混在 Applet 里的业务逻辑、UI 渲染、网络请求三者分开,UI 归前端,逻辑归后端或 WASM,通信走标准 HTTP。最容易被忽略的是——很多老 Applet 的 getParameter() 传参方式,对应到现代前端就是 URL query 或 data- 属性解析,这步映射一旦漏掉,整个交互链就断了。