我正在努力让我的 jar 文件从网络浏览器中运行。当我从 Eclipse 运行小程序时,一切正常,但是从浏览器中我得到一个 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 位于 bcpg-jdk16-146.jar 存档的 org/bouncycastle/openpgp/ 目录中……我的 JAR 包含来自 bouncycastle 的库和我的小程序类。这里是它的架构:
META-INF
-MANIFEST.MF
-CNSAPPLE.SF
-CNSAPPLE.RSA
lib
-bcprov-jdk16-146.jar
-bcpg-jdk16-146.jar
com
-CNSApplet.class
清单文件定义了类路径和主类,如下所示:
类路径:lib/bcpg-jdk16-146.jar lib/bcprov-jdk16-146.jar
主类:com.CNSApplet
以及调用小程序的 html 代码:
<applet code="com.CNSApplet.class" width="800" height="300" archive="cnsapplet.jar">
当然html文件是在cnsapplet jar文件的同一目录下。