簡體   English   中英

JApplet從簽名的jar中拋出ClassNotFoundException

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM