【问题标题】:JApplet throws ClassNotFoundException from signed jarJApplet 从签名的 jar 中抛出 ClassNotFoundException
【发布时间】:2013-08-30 06:36:03
【问题描述】:

我已经构建了一个使用其他几个 jar 文件的小程序(来自 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>

jar 和 html 都位于服务器上的同一个文件夹中。我尝试了几种路径规范的组合。我也尝试过使用 jnlp 但得到了同样的错误。在过去一个月左右的时间里,我一直对此感到沮丧。有人可以对此有所了解吗?

【问题讨论】:

    标签: java jar applet classnotfoundexception japplet


    【解决方案1】:

    加载主类时抛出ClassNotFoundException 的事实意味着无法从 jar 中读取您的类或找不到您的 jar。

    我希望您验证您的 clas 确实在 jar 中。如果不试试。只是为了确保尝试使用未签名的 jar 并查看您是否有完全相同的错误。

    如果是这样,您仍然有 2 种可能性。

    你确定你的班级确实叫newposting吗?小写?在默认包中?注意:这必须是完全限定的类名

    接下来,测试您的 jar 是否确实可用于浏览器。为此,只需将 jar 名称复制并粘贴到浏览器中,并在其前面加上您的 URL。例如,如果 HTML 在 http://myhost/myapp/mypage.html 下可用,请尝试使用 URL http://myhost/myapp/HartfordRowingNewPosting.jar

    顺便说一句,参数codebase 是什么意思?它是您的应用程序级别参数吗?我不确定,但请确保这不会将浏览器与标签applet 支持的属性codebase 混淆。这个属性通常是.:&lt;applet codebase=".",意思是“从当前目录下载jars”。这与从命令行运行 java 时说 java -cp . 相同。

    顺便说一句,你知道小程序在大约 10 年前几乎已经过时了吗?此外,据我所知,您将 MySql JDBC 驱动程序包含在您的类路径中。您应该了解这在大多数情况下不起作用,因为通常存在不允许客户端和服务器之间的 JDBC 协议的防火墙。

    【讨论】:

    • AlexR...感谢您的提示。我最近通过遵循显示它在哪里寻找我的 jar 的 java 控制台解决了这个问题。路径确实不正确。
    猜你喜欢
    • 2013-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-22
    • 1970-01-01
    • 2015-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多