最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
code属性在applet中怎么设主类_Java小程序入口声明:操作
时间:2026-06-28 09:48:46 编辑:袖梨 来源:一聚教程网
code属性指定Applet类的字节码文件名(不含.class后缀),须继承java.applet.Applet或javax.swing.JApplet,路径用斜杠分隔包名,如com/example/MyApplet;不支持点号或.class后缀,且仅适用于Java 8及以前版本。
code 属性不是用来“设主类”的,它指定的是 Applet 类的字节码文件名(不含 .class 后缀),且该类必须继承自 java.applet.Applet 或 javax.swing.JApplet。Java 小程序(Applet)没有传统意义上的“主类入口”概念,它的启动由浏览器或 appletviewer 通过反射调用 init()、start() 等生命周期方法完成。
code 属性怎么写才合法
值必须是相对于 codebase(或 HTML 文件所在路径)的类文件路径,不带包路径扩展时默认在根包下;含包时需用斜杠分隔,且不能加 .class:
-
<applet code="MyApplet.class">❌ 错误:多了.class -
<applet code="MyApplet">✅ 正确:类名即MyApplet,位于默认包 -
<applet code="com/example/MyApplet">✅ 正确:包路径用斜杠,对应com.example.MyApplet -
<applet code="com.example.MyApplet">❌ 错误:不能用点号,JVM 加载器认斜杠
为什么设置了 code 还报 ClassNotFound
常见原因不是写错类名,而是类路径没对齐:
- 未设置
codebase,而.class文件不在 HTML 同目录 —— 浏览器会按相对路径找,找不到就挂 - 类打了 jar 包但没用
archive属性声明:<applet code="MyApplet" archive="myapplet.jar"> - 编译时用了
-d输出到包结构目录,但 HTML 中code没同步改用斜杠路径 - 使用了模块化(Java 9+)或新版本 JDK —— Applet 已被彻底移除,任何
code都无效
替代方案:appletviewer 调试时怎么指定入口
appletviewer 不看 HTML 的 code,它直接加载 HTML 文件并解析其中的 <applet> 标签。但你可以绕过 HTML,用命令行强制指定:
立即学习“Java免费学习笔记(深入)”;
appletviewer -J-Djava.security.policy=my.policy MyApplet.html
真正起作用的仍是 HTML 里的 code 和 codebase。如果想快速验证某个类是否能被加载,可临时写个最小 HTML:
<html><body><applet code="MyApplet" width="300" height="200"></applet></body></html>
确保 MyApplet.class 和该 HTML 在同一目录,且类定义为:
public class MyApplet extends java.applet.Applet { public void init() { /* 必须有 */ }}
Applet 是已废弃技术,现代浏览器完全不支持,code 属性只在遗留系统维护或教学演示中还有意义;实际部署时最容易忽略的是 JDK 版本兼容性——Java 8 是最后一个完整支持 Applet 的版本,Java 9 开始移除 java.applet 包,后续版本连编译都失败。