如何在Java applet中正确指定代码库和存档?

我使用firefox版本> 3.5(3.5。 ,3.6。 ,4. *),我尝试正确指定archivecodebase属性,但它不起作用。 我的applet主类位于archive ,在运行时加载的一些必要类位于codebase 。 如果我只指定archive则加载applet但缺少codebase中的类。 如果我指定archivecodebase则无法加载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标记部署教程中找到更多详细信息。

我建议以下解决方案

  1. myjar.jar放在http://myurl.com/classes文件夹中;
  2. 假设您的MyClass.class在默认包中,并在http://myurl.com/archive/myjar.jar ”中 ,以下代码应该有效:

    no applet