0
我想提出一个Java小程序签署从客户端PDF和我遇到在Internet Explorer中启动小程序时出现以下错误:Java小程序:java.lang.NoClassDefFoundError
这是我的文件夹建筑:
Test/
├── Applet.html/
├── PDFSigningApplet.class/
├── jars/
│ └── bcpkix-jdk15on-1.49.jar
│ └── bcprov-jdk15on-1.49.jar
│ └── itextpdf-5.5.11.jar
│ └── itext-pdfa-5.5.11.jar
│ └── ...
这里是我的HTML代码:
<html>
<head>
<title>Test Smart Card Signer Applet</title>
<script src="http://java.com/js/deployJava.js"></script>
</head>
<body>
<script>
var attributes = {
codebase: '.',
code: 'PDFSigningApplet.class',
archive: 'jars/bcpkix-jdk15on-1.49.jar, ' +
'jars/bcprov-jdk15on-1.49.jar, ' +
'jars/signing-pdf-applet-1.0-SNAPSHOT.jar, ' +
'jars/commons-imaging-1.0-20170517.221134-118.jar, ' +
'jars/commons-imaging-1.0-SNAPSHOT.jar, ' +
'jars/itextpdf-5.5.11.jar, ' +
'jars/itext-pdfa-5.5.11.jar, ' +
'jars/itext-xtra-5.5.11.jar, ' +
'jars/xmlworker-5.5.11.jar',
width: '800',
height: '600'
};
var parameters = {java_arguments: ''}; // customize per your needs Xmx256m
var version = '1.8'; // JDK version
deployJava.runApplet(attributes, parameters, version);
console.log("Ran script");
</script>
...
这里是使用BouncyCastleProvider在我Applet.java:
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfSignatureAppearance;
import com.itextpdf.text.pdf.PdfStamper;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
...
BouncyCastleProvider provider = new BouncyCastleProvider();
这里奇怪的是,所有其他外部库似乎已经得到了很好的导入,但我得到BouncyCastleProvider例外。
我已经根据网上发现了类似的问题已经尝试过:
签署的所有使用我的罐子下面的命令:
罐子UFM myjar.jar addToManifest
jarsigner my.jar myKey
有了这个在我addToManifest:
Permissions: all-permissions
Codebase: file:///C:/Users/A667080/Desktop/Test/
Application-Name: PDFSigningApplet
- 添加了对这个网站在我的Java设置安全异常
- 我验证了使用7-ZIP,我BouncyCastle的罐子包含在我的小程序使用的.class
我错过了什么吗?