0

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

<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并且会开始执行Java程序的jar。

我的理解正确吗?

我的小程序需要许多外部 jar,所以我只将我的类打包到MyApplet.jar. 然后放在一个单独的文件夹中

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

并双击applet.html

在 MyApplet.jar 的清单中有

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

真的有必要将这些行放在清单中吗?

4

2 回答 2

1

我的理解正确吗?

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

真的有必要将这些行放在清单中吗?

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

  • 列在元素的archive属性中。applet
  • 作为一个元素列在resourcesJNLP 部分中。jar
于 2013-01-04T11:22:32.960 回答
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
于 2013-01-08T07:29:32.110 回答