我有JApplet,它使用了一些jar。我已经将这些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支持附件警告:找不到所需的类(javax.activation.DataHandler和javax.mail.internet.MimeMultipart(。附件支持已禁用。">
根据HTML 4.0.1规范第13.3节,"archive"属性是一个用空格分隔的URL列表。这意味着它是JARS的URL列表,它构成了小程序的类路径。
考虑将所有JAR放在一个目录中,并使用"codebase"属性,这样您就可以在"归档"URL列表中使用相对URL。
您的"文件:"URL格式不正确。一个格式良好的Windows"文件:"URL如下所示:
file://laptop/My%20Documents/FileSchemeURIs.doc
或
file:///C:/Documents%20and%20Settings/davris/FileSchemeURIs.doc
注意:
- 分层URL中的路径分隔符是"/",而不是"\"或"\">
- 任何空格字符都需要进行%转义
最后,我在规范或小程序的Oracle页面中找不到任何支持使用<param name='archive' ... >
元素指定小程序类路径的理由。
参考:
- Windows中的文件URL
您可以使用applet
标签:
<applet codebase="."
code="com.csat.CSATApplet.class"
archive="CSAT_client_2.jar,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"
height="300"
width="450">
</applet>
通过这种方式,HTML页面和JAR文件必须在同一目录