我努力讓我的jar文件工作從Web瀏覽器。 當我從Eclipse運行一切applet是好的,但是從瀏覽器我得到一個NoClassDefFoundError的:jar文件與bouncycastle庫:NoClassDefFoundError
Exception: java.lang.RuntimeException: java.lang.NoClassDefFoundError: org/bouncycastle/openpgp/PGPException
java.lang.RuntimeException: java.lang.NoClassDefFoundError: org/bouncycastle/openpgp/PGPException
at sun.plugin2.applet.Plugin2Manager.createApplet(Plugin2Manager.java:3116)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Plugin2Manager.java:1498)
at java.lang.Thread.run(Thread.java:662)
的PGPException是在組織/ BouncyCastle的/ OpenPGP的/在bcpg-jdk16-146.jar歸檔的目錄雖然... 我的JAR包含來自bouncycastle和我的小應用程序類的庫。這裏它的體系結構:
類路徑:LIB/bcpg-jdk16-146.jar LIB/bcprov-jdk16
META-INF -MANIFEST.MF -CNSAPPLE.SF -CNSAPPLE.RSA lib -bcprov-jdk16-146.jar -bcpg-jdk16-146.jar com -CNSApplet.class
因爲它遵循清單文件定義了類路徑和主類-146.jar
主類:com.CNSApplet
和HTML代碼調用applet:
<applet code="com.CNSApplet.class" width="800" height="300" archive="cnsapplet.jar">
當然,該html文件位於cnsapplet jar文件的同一目錄中。
我試過用sun method和other one來製作我的罐子。
我嘗試了這兩種解決方案,但總是遇到同樣的異常。我也嘗試刪除與BC庫相關的代碼並相應地導入。但顯然當瀏覽器檢索到jar時,就好像它是前一個帶有BC庫的jar! – renard
聽起來像是一個緩存問題 - 確保您在測試之前清除瀏覽器緩存,因爲大多數瀏覽器將緩存JAR而不必再次下載它們。 – Kraylog
這可以說是個問題,它現在起作用了!謝謝,下次我會記住這一點 – renard