java - 如何将jar添加到小程序中?

标签 java jar applet noclassdeffounderror japplet

我有 JApplet,它使用一些 jars。我已将这些 jar 添加到小程序的 lib 文件夹中,将它们设置为类路径并创建了 html:

<HTML>
  <HEAD>
    <TITLE>Applet</TITLE>
  </HEAD>
  <BODY>
    <H1>Applet</H1>
    <object classid="java:com.csat.CSATApplet.class" 
        type="application/x-java-applet"
        archive="file:///C:\\Documents and Settings\\alburash\\Desktop\\CSAT_client_2.jar" 
        height="300" width="450" >
    <PARAM NAME=ARCHIVE VALUE="dom4j-1.6.1.jar,poi-3.10-FINAL-20140208.jar,poi-excelant-3.10-FINAL-20140208.jar,poi-ooxml-3.10-FINAL-20140208.jar,poi-ooxml-schemas-3.10-FINAL-20140208.jar,poi-scratchpad-3.10-FINAL-20140208.jar,stax-api-1.0.1.jar,xmlbeans-2.3.0.jar,axis.jar,commons-discovery-0.2.jar,javax.wsdl_1.6.2.v201012040545.jar,jaxrpc.jar,org.apache.commons.logging_1.1.1.v201101211721.jar,org.apache.xmlrpc_3.0.0.v20100427-1100.jar,saaj.jar">
    </object>
     </BODY>
</HTML>

但是当我启动这个 html 时,我看到错误“java.lang.NoClassDefFoundError:javax/xml/rpc/Service”。我明白小程序找不到这个类,但是为什么会出现这种情况呢?当我通过 Eclipse 启动小程序时,它工作正常。所有需要的库都放入 CSAT_client_2.jar 的“lib”文件夹中,类路径正确,已找到 CSATApplet.class (这是我之前的问题)。

这是未签名的小程序。

对于 Stephen C:我尝试更改 html,但小程序找不到 CSATApplet.class 并且无法启动。当我使用第一个 html 时,小程序毫无问题地找到 CSATApplet.class 并启动,但之后我看到了第一个错误。我的主要问题是我可以启动小程序,但小程序找不到包含所需库的 jar 文件。

<HTML>
  <HEAD>
    <TITLE>Applet</TITLE>
  </HEAD>
  <BODY>
    <H1>Applet</H1>
    <object classid="java:com.csat.CSATApplet.class" 
        type="application/x-java-applet"
        codebase="file:///C:/Documents%20and%20Settings/alburash/Desktop/CSAT_client_2.jar" 
        height="300" width="450" >
     </object>
     </BODY>
</HTML>

此外,当我在 Eclipse 中启动小程序时,我看到警告,但小程序启动并正常工作: “2014 年 4 月 30 日下午 2:09:06 org.apache.axis.utils.JavaUtils isAttachmentSupported 警告:无法找到所需的类(javax.activation.DataHandler 和 javax.mail.internet.MimeMultipart)。附件支持已禁用。”

最佳答案

根据 HTML 4.0.1 规范,section 13.3 ,“archive”属性是一个空格分隔的 URL 列表。这意味着它是构成 applet 类路径的 JARS 的 URL 列表。

考虑将所有 JAR 放入一个目录并使用“codebase”属性,以便您可以在“archive”URL 列表中使用相对 URL。

您的“文件:”网址格式错误。格式正确的 Windows“文件:”URL 如下所示:

    file://laptop/My%20Documents/FileSchemeURIs.doc

    file:///C:/Documents%20and%20Settings/davris/FileSchemeURIs.doc

请注意:

  • 分层 URL 中的路径分隔符是“/”,而不是“\”或“\”,
  • 任何空格字符都需要进行 % 转义。

最后,我在规范或小程序的 Oracle 页面中找不到任何支持使用 <param name='archive' ... > 的理由。元素来指​​定小程序类路径。

引用:

关于java - 如何将jar添加到小程序中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23367567/

相关文章:

java - 无法解析类型 java.rmi.RemoteException。它是从 java 中必需的 .class 文件错误中间接引用的

java - 将 NullPointerException 视为单元测试失败 : is it good practice?

java - 使用 Java 中的文件选择器从任何位置选择 txt 文件

java - HttpServletRequest 属性和参数获取 "lost"?符合 1.6 JavaEE 规范?

java - 将 this(在构造函数中)泄漏给对象本身

java - 限制 PHP -> Java Applet 的文件访问

java - Spring Boot中jar和war的区别?

maven - 故障安全错误 : "Invalid signature file digest for Manifest main attributes" when using shade plugin

javascript - 限制 Droplet 上的文件类型

java小程序无法运行