上一篇                     
               
			  Java Applet怎么用?速成教程
- 后端开发
- 2025-06-01
- 2320
 Java Applet是嵌入网页的小程序,需继承
 
 
java.applet.Applet类,编译后通过HTML的“标签调用并在支持Java的浏览器中运行,它依赖严格的安全沙箱模型,但现因安全限制和浏览器兼容性问题,已成为过时技术,现代Web开发基本弃用。
Java Applet的使用指南(附历史背景与现代替代方案)
Java Applet曾是早期网页动态交互的重要技术,它允许在浏览器中运行Java程序。但由于严重的安全破绽和兼容性问题,2015年后主流浏览器已全面禁用Applet,Java 9正式将其标记为废弃(Deprecated),Java 17中彻底移除。 本指南将详细介绍其历史用法,并强调现代替代方案。
什么是Java Applet?
Applet是一种嵌入网页的Java小程序,通过<applet>或<object>标签加载,它在JVM沙箱中运行,曾用于动态图表、在线游戏等场景。
核心特性: 

- 需继承java.applet.Applet类
- 生命周期由浏览器管理(init()、start()、stop()、destroy())
- 依赖浏览器Java插件(如NPAPI)
传统Applet开发步骤(仅作技术参考)
编写Applet代码
import java.applet.Applet;
import java.awt.Graphics;
public class HelloApplet extends Applet {
    public void paint(Graphics g) {
        g.drawString("Hello World!", 50, 50); // 在坐标(50,50)显示文本
    }
} 
编译为.class文件
javac HelloApplet.java
创建HTML页面嵌入Applet
<html> <body> <applet code="HelloApplet.class" width="300" height="200"> 您的浏览器不支持Java Applet <!-- 备用提示 --> </applet> </body> </html>
部署文件到服务器
- 将.class文件与HTML放在同一目录
- 通过Web服务器访问(如Tomcat)
安全配置(已失效)
历史上需配置JRE安全策略:
- 签名JAR:防止未授权代码执行 jarsigner -keystore myKeyStore.jks HelloApplet.jar myAlias 
- 策略文件:在java.policy中添加权限grant { permission java.security.AllPermission; };
警告:现代浏览器(Chrome/Firefox/Edge)自2015年起已移除NPAPI插件支持,即使完成上述步骤,Applet也无法运行。
为什么Applet被淘汰?
- 安全风险:插件破绽易受攻击
- 性能问题:启动慢,占用资源高
- 兼容性:HTML5标准兴起,移动端不支持
- 维护成本:Oracle于2017年终止商业支持
现代替代技术
| 需求场景 | 替代方案 | 优势 | 
|---|---|---|
| 网页动态交互 | JavaScript + HTML5 Canvas | 无需插件,跨平台响应式 | 
| 复杂应用 | WebAssembly (C++/Rust) | 接近原生性能 | 
| 数据可视化 | D3.js / Chart.js | 轻量级,丰富图表库 | 
| 企业级应用 | Java Web Start(已废弃)→ 转为桌面应用或Web服务 | 更安全的部署模型 | 
示例替代方案(使用HTML5实现同等功能):
<canvas id="myCanvas" width="300" height="200"></canvas>
<script>
  const canvas = document.getElementById("myCanvas");
  const ctx = canvas.getContext("2d");
  ctx.font = "16px Arial";
  ctx.fillText("Hello World!", 50, 50); 
</script> 
学习Applet的当前意义
- 理解遗留系统:维护老旧企业应用时可能遇到
- Java GUI基础:java.awt包仍用于Swing桌面开发
- 技术演进启示:安全与标准化的设计教训
重要提示:新项目绝对不应使用Applet,若需在浏览器中运行Java,考虑:
- 后端服务:Java Spring Boot提供REST API
- 客户端:JavaFX打包为原生应用
- Web技术栈:前后端分离(React/Vue + Java API)
引用说明
- Oracle官方公告:Java Applet Deprecation (2017)
- Mozilla NPAPI弃用说明:Firefox Plugin Support (2015)
- HTML5替代技术:MDN Canvas文档
本指南仅作技术存档,拥抱现代Web标准是保障安全性、性能及用户体验的核心原则。
 
 

 
			