我已经构建了一个applet(来自JApplet),它消耗了其他几个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>
jars和html都位于服务器上的同一文件夹中。我尝试了几种路径规范的组合。我也尝试过使用jnlp但得到同样的错误。在过去一个月左右的时间里,我对此一直感到沮丧。有人可以对此有所了解吗?
答案 0 :(得分:0)
加载主类时抛出ClassNotFoundException
的事实意味着无法从jar中读取您的类,或者无法找到您的jar。
我希望你的确认你的朋友确实在罐子里。如果没有尝试。只是为了确保尝试使用未签名的jar并看到你有完全相同的错误。
如果是这样,你仍有2种可能性。
您确定您的班级确实被称为newposting
吗?小写?在默认包中?注意:这必须是完全限定的类名。
接下来,测试你的jar确实可用于浏览器。为此,只需将jar名称复制并粘贴到浏览器,并在其前面加上您的URL。例如,如果在http://myhost/myapp/mypage.html
尝试网址http://myhost/myapp/HartfordRowingNewPosting.jar
下可以使用HTML。
BTW参数codebase
是什么意思?它是您的应用程序级别参数吗?我不确定,但请确保这不会使浏览器与标记codebase
支持的属性applet
混淆。此属性通常为.
:<applet codebase="."
,表示“从当前目录下载jar”。这与从命令行运行java时的java -cp .
相同。