如何在Java applet中正确指定代码库和存档?
我使用firefox版本> 3.5(3.5。 ,3.6。 ,4. *),我尝试正确指定archive
和codebase
属性,但它不起作用。 我的applet主类位于archive
,在运行时加载的一些必要类位于codebase
。 如果我只指定archive
则加载applet但缺少codebase
中的类。 如果我指定archive
和codebase
则无法加载applet。 看起来applet尝试从codebase
文件夹加载主类,而不是查看archive
文件。
no applet
主类位于http://myurl.com/archive/myjar.jar ,运行时类位于http://myurl.com/classes 。
属性codebase
指定applet的基本URL – 包含applet代码的目录。 在archive
属性中搜索jar文件时使用它,以便相对于codebase
搜索archive
属性中的所有jar archive
。
所以。 当您使用archive="http://myurl.com/archive/myjar.jar"
和codebase="http://myurl.com/classes"
时,它意味着:找到“ http://myurl.com/archive/ myjar.jar “在” http://myurl.com/classes “文件夹中。
即完整的搜索路径是“ http://myurl.com/classes/http://myurl.com/archive/myjar.jar ” 。 当然,它无法找到!
此外,如果没有codebase
属性,则无法找到其archive
属性中未指定jar文件的类。 即如果没有codebase
,则无法在“ http://myurl.com/classes ”文件夹中找到您的类。
您可以在使用Applet标记部署教程中找到更多详细信息。
我建议以下解决方案 :
- 将
myjar.jar
放在http://myurl.com/classes
文件夹中; - 假设您的MyClass.class在默认包中,并在“ http://myurl.com/archive/myjar.jar ”中 ,以下代码应该有效: