【问题标题】:Java applet: How to tell the browser (Firefox) where to look for libraries (jars)Java 小程序:如何告诉浏览器 (Firefox) 在哪里寻找库 (jar)
【发布时间】:2011-08-29 10:42:44
【问题描述】:

我编写了一个 Java 小程序类并制作了一个小的 HTML 页面,通过 -tag 将其包含在内。 (目前在我的磁盘驱动器上本地运行) 这很好用,也就是说,小程序正在正确加载。 但是小程序依赖于外部库(jar)。 例如。我导入了 org.apache.batik.swing.JSVGCanvas; 当然,我这里有所有的罐子,并且在 Eclipse 中测试小程序工作正常。 但是浏览器(Firefox)似乎没有找到罐子。 我如何告诉浏览器在哪里搜索外部 jar? 我尝试在用户环境变量中设置 CLASSPATH。没有成功。 这是在运行 JRE 1.6 的 Windows XP 上。

【问题讨论】:

    标签: java firefox jar applet


    【解决方案1】:

    Applet 在客户端机器中执行,因此在 CLASSPATH 中包含库无济于事。

    库应该在“归档”属性中:

    <applet code="Applet.class" archive="myApplet.jar,lib1.jar,lib2.jar" width="600" height="600" title="MyApplet">
    

    【讨论】:

    • 是的,这些库在存档属性中:archive="batik-swing.jar" (其中包括)(忘了提,抱歉)但是浏览器似乎没有找到它们(它怎么知道路径?):浏览器的 Java 控制台显示:java.lang.RuntimeException: java.lang.NoClassDefFoundError: org/apache/batik/swing/JSVGCanvas
    • 好问题。用IE8试过。也不行。但是在IE中我什至无法访问Java控制台,所以我不知道是不是同样的错误原因。
    • @Scrontch "它怎么知道路径?"您在“存档”属性中设置路径。在我的示例中,所有 3 个 jar 必须在同一个目录中。您可以设置不同的路径。例如archive="myApplet.jar,../libs/lib1.jar,../libs/lib2.jar"
    • 好的,所以我现在尝试在存档属性中提供完整路径。但现在我得到一个 java.net.MalformedURLException: unknown protocol: d 我机器上的 (Windows) 文件路径是 D:\Dev\batik-1.7。我尝试用正斜杠替换反斜杠,但这并没有解决问题。
    • 好的,我已将 jars 复制到其他位置并现在使用相对路径 (../lib/)。这似乎有效。我现在还有其他不满意的依赖项,但这是另一个问题。
    【解决方案2】:

    您需要指定applet 标签的codebase 属性。

    看看how-to-specify-correctly-codebase-and-archive-in-java-applet。

    这与你的问题相似。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-02
      • 2018-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-26
      • 2014-03-05
      • 2018-10-26
      相关资源
      最近更新 更多