了解Java小程序

时间:2010-07-02 17:21:00

标签: java class jar applet

我正在尝试了解applet的工作原理。

我知道类文件是字节码,JVM可以理解和执行。当applet在用户系统上运行时,字节码通过网络传输到用户系统。

现在,当有多个类文件时会发生什么?例如,如果具有applet的init()方法(类A)的类具有另一个类(B类)的对象,该怎么办? html文件仍包含APPLET标记中的classA.class。在这种情况下,classB.class是否也通过网络传输?

另外,jar文件如何适合这里?它们只是类文件的压缩集合,不是吗?

非常感谢任何关于如何运作的清晰度。

谢谢,

4 个答案:

答案 0 :(得分:1)

jar文件是包含类的文件,它使用zip压缩。当浏览器找到引用applet的标记时,它会将jar文件下载到客户端并运行它。

答案 1 :(得分:1)

您的applet所依赖的任何依赖项都将传输到客户端。这包括单个类和jar文件。

但是,许多Java开发人员现在更喜欢使用Java Web Start而不是applet。 Web Start应用程序不在浏览器内运行,这有助于缓解不同浏览器的Java插件的兼容性问题。此外,Web Start沙箱不像applet在其中运行的沙箱那样具有限制性。如果您已经以Applet形式编写了代码,它仍然可以作为Web Start应用程序启动。

答案 2 :(得分:0)

我认为上面描述的关键事实是jar文件在applet运行之前由JVM传输和解释,因此知道并因此可以访问整个类层次结构。

答案 3 :(得分:0)

HTML中不推荐使用<APPLET>标记;应该首选<OBJECT>标签。但是,Sun(Oracle?)表示<APPLET>是首选,因为<OBJECT>支持是不稳定的。把它拿走它的价值。

JAR文件(在<APPLET>的上下文中)使用archive参数指定。

我希望所有文件都是从applet所在的URL的底部获取的;档案当然是。

我会查看Sun的Java Tutorials。他们在applet上有一个,包括通过Java Web Start启动。