浏览器如何处理applet?

时间:2013-01-04 10:59:57

标签: java browser applet japplet

我想知道当我的浏览器进入这样的网页时会发生什么。当我尝试谷歌搜索“浏览器”和“小程序”时,它主要找到如何将小程序添加到浏览器和故障排除,但不是如何工作。

<html>
<head><title>My Applet</title></head>
<body>
    <applet code="org/mypackage/MainClass.class" archive="MyApplet.jar,libA.jar,libB.jar" width="1600" height="860"></applet>
</body>
</html>

如果网页是远程的,那么我猜浏览器必须将archive参数中所有提到的jar下载到某个临时文件夹,然后浏览器要求Java插件接下来处理。所以插件会找到具有MainClass的jar并启动Java程序执行。

我的理解是否正确?

我的applet需要很多外部jar,因此我只将我的类打包到MyApplet.jar。然后在一个单独的文件夹中我放

MyApplet.jar
libA.jar
libB.jar
applet.hmtl

然后双击applet.html

在MyApplet.jar的manifest中有

Rsrc-Class-Path: ./ libA.jar libB.jar
Class-Path: .

是否真的有必要将这些行放入清单?

2 个答案:

答案 0 :(得分:1)

  

我的理解是否正确?

基本上,禁止使用Java Web Start部署的applet,并根据需要或以编程方式下载库Jars。

  

是否真的有必要将这些行放入清单?

如果Jars如下,则不需要在清单中引用它们。

  • 列在archive元素的applet属性中。
  • 在JNLP的resources部分列为jar元素。

答案 1 :(得分:0)

这是从Java控制台回答我自己的问题:

CacheEntry[http://localhost/applet/MyApplet.jar]: updateAvailable=true,lastModified=Tue Jan 08 16:10:19 KST 2013,length=2128455
network: Connecting http://localhost/applet/MyApplet.jar with proxy=DIRECT
network: Connecting http://localhost:80/ with proxy=DIRECT
network: Downloading resource: http://localhost/applet/MyApplet.jar
    Content-Length: 2,128,450
    Content-Encoding: null

network: Wrote URL http://localhost/applet/MyApplet.jar to File C:\Users\Nikolay\AppData\LocalLow\Sun\Java\Deployment\cache\6.0\0\1367c940-4740e460-temp
security: The jar file isnt signed so the blacklist check will be skipped
security: Trusted libraries list file not found

cache: Replacing MemoryCache entry (cnt=0) for http://localhost/applet/MyApplet.jarwas=com.sun.deploy.cache.CacheEntry (749595) now=com.sun.deploy.cache.CacheEntry (15535897)
basic: Applet loaded.
basic: Applet resized and added to parent container
basic: PERF: AppletExecutionRunnable - applet.init() BEGIN ; jvmLaunch dt 1039162 us, pluginInit dt 903077 us, TotalTime: 1942239 us