[英]JApplet throws ClassNotFoundException from signed jar
我建立了一个applet(来自JApplet),它使用了其他几个jar文件。 我已经签名了包含主类的jar,并包含了我需要的所有jar(我认为)。 但是,无论我尝试什么,我都会得到“ java.lang.ClassNotFoundException:newposting”,其中“ newposting”是我签名的jar中的主要类。 我为此使用以下html:
<p><applet code="newposting"
archive="HartfordRowingNewPosting.jar,
javax.mail.jar,
jcalendar-1.4.jar,
junit-4.6.jar,
jgoodies-common-1.2.0.jar,
jgoodies-looks-2.4.1.jar,
mysql-connector-java-5.1.25-bin.jar"
width="500" height="850">
<param name="permissions" value="sandbox" />
<param name="codebase" value="HartfordRowingNewPosting.jar" />
</applet></p>
jar和html都位于服务器上的同一文件夹中。 我尝试了几种路径规范的组合。 我也尝试过使用jnlp,但得到相同的错误。 在过去一个月左右的时间里,我一直对此感到沮丧。 有人可以阐明这一点吗?
加载主类时抛出ClassNotFoundException
的事实意味着无法从jar读取类或找不到jar。
我希望您能验证自己的确在罐子里。 如果没有尝试。 只是要确保尝试使用未签名的jar并查看是否存在完全相同的错误。
如果是这样,您仍有2种可能性。
您确定您的课程确实称为新newposting
吗? 小写? 在默认包中? 注意:这必须是完全合格的类名 。
接下来,测试您的jar是否确实可用于浏览器。 为此,只需将jar名称复制并粘贴到浏览器中,并在其前面加上您的URL。 例如,如果可以在http://myhost/myapp/mypage.html
下找到HTML,请尝试使用URL http://myhost/myapp/HartfordRowingNewPosting.jar
。
BTW参数codebase
是什么意思? 是您的应用程序级别参数吗? 我不确定,但是请确保这不会使浏览器与标签applet
支持的属性codebase
混淆。 此属性通常为.
: <applet codebase="."
这意味着“从当前目录下载jar”。 这与说java -cp .
相同java -cp .
从命令行运行Java时。
顺便说一句,您知道小程序在10年前几乎已经过时了吗? 而且据我所知,您将MySql JDBC驱动程序包括在类路径中。 您应该了解,在大多数情况下这是行不通的,因为通常存在不允许客户端和服务器之间使用JDBC协议的防火墙。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.