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