java.lang.ClassNotFoundException:org.apache.poi.poifs.crypt.agile.AgileEncryptionInfoBuilder

我正在使用Apache Poi.3.10-FINAL jar生成Excel Sheet.I尝试使用下面的代码密码保护。我越来越像这样的错误。

Exception in thread "main" org.apache.poi.EncryptedDocumentException: java.lang.ClassNotFoundException: org.apache.poi.poifs.crypt.agile.AgileEncryptionInfoBuilder at org.apache.poi.poifs.crypt.EncryptionInfo.<init>(EncryptionInfo.java:135) at org.apache.poi.poifs.crypt.EncryptionInfo.<init>(EncryptionInfo.java:91) at org.apache.poi.poifs.crypt.EncryptionInfo.<init>(EncryptionInfo.java:80) at com.tcs.ServiceCatalog.Common.main(Common.java:63) Caused by: java.lang.ClassNotFoundException: org.apache.poi.poifs.crypt.agile.AgileEncryptionInfoBuilder at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at org.apache.poi.poifs.crypt.EncryptionInfo.getBuilder(EncryptionInfo.java:150) at org.apache.poi.poifs.crypt.EncryptionInfo.<init>(EncryptionInfo.java:133) ... 3 more 

代码:取自链接。

 POIFSFileSystem fs = new POIFSFileSystem(); EncryptionInfo info = new EncryptionInfo(fs, EncryptionMode.agile); Encryptor enc = info.getEncryptor(); enc.confirmPassword("s3cr3t"); OPCPackage opc = OPCPackage.open(new File("c:/test/excel.xlsx"), PackageAccess.READ_WRITE); OutputStream os = enc.getDataStream(fs); opc.save(os); opc.close(); FileOutputStream fos = new FileOutputStream("c:/test/excel.xlsx"); fs.writeFilesystem(fos); fos.close(); 

我试图寻找缺less的类org.apache.poi.poifs.crypt.agile.AgileEncryptionInfoBuilder但找不到它。

任何帮助表示感谢。提前感谢。

你也需要poi-ooxml-3.10.FINAL 。 下载并将其添加到您的类path。