标签在现代浏览器中已完全失效,因其依赖的npapi接口被所有主流浏览器彻底移除,html5规范也不再支持该标签,即使配置正确也无法加载。

<applet></applet> 标签在现代浏览器中已完全失效,无法加载任何 Java 小程序。它从 Chrome 45、Firefox 52、Edge 14 起被移除,Oracle 在 JDK 9 中正式弃用 Applet 类,JDK 17 彻底删除支持。你现在打开含 <applet></applet> 的页面,只会看到空白或“插件不可用”提示。
为什么 <applet></applet> 标签现在一定失败
不是配置问题,是底层能力已被硬性移除:
- 所有主流浏览器(Chrome、Firefox、Safari、Edge)已彻底剥离 NPAPI 插件接口,而 Java Applet 依赖该接口与 JVM 通信
-
<applet></applet>是 HTML4 时代标签,HTML5 规范中明确不包含它,现代 HTML 解析器直接忽略该标签 - 即使你手动启用旧版 IE 或降级到 Firefox ESR 52,JRE 本身也默认禁用未签名 Applet;Oracle 自 2019 年起停止为公共 JRE 提供浏览器插件更新
<object></object> 和 <embed></embed> 也无法绕过限制
有人尝试改用 <object type="application/x-java-applet"></object> 或 <embed pluginpage="..."></embed>,但结果相同:
-
type="application/x-java-applet"MIME 类型已被所有浏览器标记为“不可注册” -
pluginpage、codebase、archive等属性在 DOM 中存在,但浏览器不会触发任何加载逻辑 - 开发者工具的 Network 面板里看不到 .class 或 .jar 请求发出,说明解析阶段就被跳过
如果必须运行遗留 Applet,唯一可行路径
绕开浏览器,不走网页嵌入流程:
- 用
appletviewer工具本地运行:把 HTML 文件拖进 JDK 安装目录下的bin/appletviewer.exe(Windows)或appletviewer(macOS/Linux),它会独立启动 JVM 渲染 Applet - 将 Applet 改写为 JavaFX 或 Swing 桌面应用:替换
JApplet为Application,用javafx.application.Application启动,打包成 jar 直接双击运行 - 用 WebAssembly 方案重实现核心逻辑:比如用 CheerpJ(开源 JVM for WebAssembly)加载旧 .class 字节码,但需注意它不支持全部 AWT/Swing 组件,且
paint()、事件循环等需适配
真正卡住多数人的点,不是“怎么写对标签”,而是误以为只要 class 文件存在、路径正确、JRE 装了就能跑——实际上,从网络请求发出前,整个链路就已经断了。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











