java - 如何在 Java 小程序中正确指定代码库和存档?

标签 java firefox applet

我使用 firefox 版本 > 3.5 (3.5.,3.6.,4.*) 并且我尝试指定 archivecodebase 属性正确但它不起作用。我的 applet 主类位于 archive 中,一些在运行时加载的必要类位于 codebase 中。如果我仅指定 archive 则加载小程序,但缺少 codebase 中的类。如果我指定 archivecodebase 则无法加载小程序。看起来小程序试图从 codebase 文件夹加载主类,但没有查看 archive 文件。

<html>    
<body>
<applet width=600 height=300 code="MyClass.class" 
  type="application/x-java-applet;jpi-version=6" 
  archive="http://myurl.com/archive/myjar.jar" 
  codebase="http://myurl.com/classes">
    no applet
</applet>
</body>    
</html>

主类位于http://myurl.com/archive/myjar.jar和运行时类位于 http://myurl.com/classes .

最佳答案

属性 codebase 指定小程序的基本 URL - 包含小程序代码的目录。它在 archive 属性中搜索 jar 文件时使用,以这种方式搜索 archive 属性中的所有 jar 相对于 codebase
所以。当你同时使用 archive="http://myurl.com/archive/myjar.jar"codebase="http://myurl.com/classes" 时意思是:在"http://myurl.com/archive/myjar.jar "文件夹中找到"http://myurl.com/classes "
IE。完整的搜索路径是"http://myurl.com/classes/http://myurl.com/archive/myjar.jar "。当然也找不到!
此外,如果没有 codebase 属性,则无法找到其 jar 文件未在 archive 属性中指定的类。 IE。如果没有 codebase 则无法在 "http://myurl.com/classes " 文件夹中找到您的类。

您可以在 Deploying With the Applet Tag 中找到更多详细信息教程。

我建议采用以下解决方案:

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

<html>    
<body>
<applet width=600 height=300 code="MyClass" 
  type="application/x-java-applet;jpi-version=6" 
  archive="myjar.jar" 
  codebase="http://myurl.com/classes">
   no applet
</applet>
</body>    
</html>

关于java - 如何在 Java 小程序中正确指定代码库和存档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5947063/

相关文章:

java - 使用 PDFBox、iText 提取文本为空且未知,因为文本具有 type3 字体(困难的主题!)

java - Jackson 解析器不会因明显错误的 json 而因 JsonParseException 失败

css - 背景图像路径在 Firefox 中不起作用

firefox - 自动启动 x-server 和自己的服务

html - 即使在使用 reset.css 之后,字体字距在 chrome 和 firefox 中也有所不同

Java小程序游戏在不同计算机上运行速度不同

java - 自动编码器学习所有样本的平均值

Java-Faker 鼠标事件没有聚焦窗口

java - 如何将图像从 Applet 传递到 JSF 支持 bean

java - 如何提高以下程序 "Remove duplicates from an array"的时间复杂度?